From 956b3bdaee247e9af8fee313a5a939ce33e081a2 Mon Sep 17 00:00:00 2001 From: abrichr Date: Sat, 24 Oct 2026 14:48:50 -0400 Subject: [PATCH 01/17] test: size ratchet, moved-code verifier and import-surface snapshot The safety net for the decomposition plan (DECOMPOSITION.md, PR 1): - scripts/check_file_size_ratchet.py keeps the ten largest files from growing past the budget table in the plan; - scripts/verify_moved_code.py proves a move commit only relocates code (identical ASTs, new code limited to imports, re-exports and protocol stubs) and lists test patches a move would make stale; - tests/test_import_surface.py pins the names replayer, __main__, qualification and ir provide, and Replayer's methods. Co-Authored-By: Claude Opus 5.5 --- .../flow/tests/fixtures/import_surface.json | 718 ++++++++++++++++++ packages/flow/tests/test_import_surface.py | 116 +++ scripts/check_file_size_ratchet.py | 106 +++ scripts/verify_moved_code.py | 331 ++++++++ tests/test_file_size_ratchet.py | 85 +++ tests/test_verify_moved_code.py | 173 +++++ 6 files changed, 1529 insertions(+) create mode 100644 packages/flow/tests/fixtures/import_surface.json create mode 100644 packages/flow/tests/test_import_surface.py create mode 100644 scripts/check_file_size_ratchet.py create mode 100644 scripts/verify_moved_code.py create mode 100644 tests/test_file_size_ratchet.py create mode 100644 tests/test_verify_moved_code.py diff --git a/packages/flow/tests/fixtures/import_surface.json b/packages/flow/tests/fixtures/import_surface.json new file mode 100644 index 0000000000..506ff8734b --- /dev/null +++ b/packages/flow/tests/fixtures/import_surface.json @@ -0,0 +1,718 @@ +{ + "openadapt_flow.runtime.replayer": [ + "EgressNotPermitted", + "FIELD_REGION_PAD", + "FIELD_REGION_SIZE", + "MASKED_MIN_CONFIDENCE", + "MASKED_NEW_TEXT_SLACK", + "MASKED_REPEAT_FRACTION", + "PC_STRUCTURAL_TEMPLATE_THRESHOLD", + "PC_TEMPLATE_SEARCH_PAD", + "PC_TEMPLATE_THRESHOLD", + "PROGRAM_MAX_DEPTH", + "PROGRAM_MAX_STEPS", + "READBACK_DEADLINE_MARGIN_S", + "Replayer", + "Resolution", + "SCROLL_BUDGET_FACTOR", + "SCROLL_POSITION_SLACK_FRACTION", + "SECRET_ENV_PREFIX", + "_DIALOG_WAIT_S", + "_DIRECT_TARGET_RUNGS", + "_DURABLE_RESUME_AUTHORITY", + "_DeliveryResultT", + "_FIELD_CHECK_LIMIT", + "_FIELD_VALUE_LIMIT", + "_GraphStepContext", + "_MAX_FRESH_ACTUATION_REACQUISITIONS", + "_MAX_SERVER_RESPONSES", + "_PAGE_SCALE_AXIS_AGREEMENT", + "_PAGE_SCALE_BAND", + "_PAGE_SCALE_BOUNDS", + "_PAGE_SCALE_MIN_COORD", + "_PIXEL_RECHECK_LEVEL", + "_PIXEL_RECHECK_MIN_PIXELS", + "_PIXEL_RECHECK_REOBSERVES", + "_ProgramHalt", + "_SCROLL_HANDOFF_ACTIONS", + "_WebFormApprovalView", + "_all_workflow_steps", + "_effect_read_wording", + "_field_text", + "_frame_viewport", + "_identity_tokens", + "_loop_iterations_from_checkpoints", + "_pipeline_safe_verifier", + "_record_loop_iteration", + "_scroll_target_positioned", + "_uniform_page_scale", + "better_identity_read", + "effect_endpoint_scope", + "effect_field_checks", + "identity_read_contradicts", + "secret_env_var" + ], + "openadapt_flow.runtime.replayer:Replayer": [ + "__init__", + "_accept_healed_anchor_in_workflow_snapshot", + "_account_result", + "_act", + "_act_answering_dialog", + "_act_read", + "_act_scroll", + "_act_without_dialog", + "_activate_surface_backend", + "_active_program_frame_refusal", + "_active_surface_binding", + "_active_surface_is_external_remote", + "_actuator_for", + "_admit_durable_resume", + "_all_default_readback", + "_api_identity_refusal", + "_api_request_pointer_field_path", + "_api_request_pointer_value", + "_apply_effect_fault_mutation", + "_apply_pipelined_verdict", + "_apply_screen_fault_mutation", + "_apply_step_gates", + "_approval_form_state", + "_approval_gate_refusal", + "_approval_gated", + "_approval_step_refusal", + "_arm_dialog", + "_asset_bytes", + "_attended_transition_observation", + "_auto_readback_verifier", + "_band_check", + "_begin_approval_item", + "_begin_control_overlay", + "_begin_surfaces", + "_bind_checkpoint_surface", + "_bind_qualification_boundary", + "_bind_surface_qualification_environment", + "_build_graph_ctx", + "_cancel_guarded_coordinate", + "_cancel_guarded_keyboard", + "_candidate_binding_refusal", + "_canonical_interstitial_snapshot", + "_canonical_resume_value", + "_capture_effect_pre_state", + "_captured_context_observations", + "_changed_regions", + "_check_postconditions", + "_check_regions", + "_collect_server_responses", + "_compare_direct_signal_text", + "_compare_qualified_signal_text", + "_consume_durable_resume_admission", + "_control_overlay_browser_target", + "_control_overlay_progress", + "_copy_look_allowed", + "_copy_look_possible", + "_copy_pipelined_evidence", + "_defer_readback", + "_deliver_backend_call", + "_delivery_authorization_refusal", + "_describe_postcondition", + "_describe_predicate", + "_dom_text_visible", + "_drift_oracle_rescue", + "_durable_auxiliary_digest", + "_durable_resume_payload", + "_durable_terminal_state", + "_effect_binding_for", + "_effect_pre_state_for", + "_embedded_identity_params", + "_emit_control_overlay_phase", + "_emit_control_overlay_terminal", + "_emit_halt", + "_end_surfaces", + "_entry_identity_gate_error", + "_evidence_for_completed_effects", + "_exec_action_state", + "_exec_business_decision_state", + "_exec_loop_state", + "_exec_state", + "_expected_state_text", + "_field_region", + "_field_value_shown", + "_finalize_report", + "_frame_to_model", + "_fresh_actuation_authorization_refusal", + "_fresh_actuation_event", + "_fresh_actuation_identity_regions", + "_governed_authorization_snapshot_refusal", + "_governed_web_form_refusal", + "_guarded_click_pointer_revalidation", + "_guarded_keyboard_revalidation", + "_guarded_type_pointer_revalidation", + "_handle_interstitials", + "_heal_step", + "_hover_check", + "_identifier_crops", + "_identifier_displacement", + "_identity_band_still_changing", + "_identity_gate_error", + "_implicit_scroll_target_ready", + "_initial_external_network_calls", + "_install_execution_snapshots", + "_interpret_program", + "_interstitial_declaration_mutation", + "_is_qualification_fault_step", + "_join_pipelined_readback", + "_keep_undo_prior_state", + "_layout_drift_error", + "_layout_drift_on", + "_live_session_profile", + "_load_layout_fingerprints", + "_local_atomic_capability_error", + "_local_edit_held", + "_look_again", + "_lookalike_param_looks", + "_lookalike_param_read", + "_lookup_capability_refusal", + "_managed_dispatch_refusal", + "_mapped_selection_readback_region", + "_mark_idempotency_projection_failure", + "_may_pipeline_readback", + "_maybe_scale_render", + "_new_step_evidence_key", + "_next_anchored_step", + "_next_program_decision_index", + "_note_page_scale", + "_observe_qualification_environment", + "_observe_screen_texts", + "_ocr_identity_crop", + "_ocr_squashed", + "_on_state_failure", + "_params_with_business_decisions", + "_pixel_recheck", + "_poll_postconditions", + "_postcondition_confirms_a_write", + "_postcondition_passes", + "_postcondition_template", + "_predicate_holds", + "_prepare_remote_scroll_input", + "_prev_was_click", + "_production_qualification_refusal", + "_profile_effect_tier_refusal", + "_profile_runtime_refusal", + "_program_checkpoint_history", + "_program_execution_scope", + "_program_guard_uses_frame", + "_program_scope_from_frames", + "_project_idempotency_outcome_after_persist", + "_qualification_campaign_refusal", + "_qualification_fault_context", + "_qualification_fault_driver_refusal", + "_qualification_fault_gate_for_kind", + "_qualification_id_sha256", + "_qualified_signal_evidence", + "_raise_on_governed_asset_mutation", + "_raise_on_workflow_snapshot_mutation", + "_read_gate_refusal", + "_readable_chars", + "_record_idempotency_outcome", + "_record_identity_coverage", + "_record_linear_result", + "_record_program_checkpoint", + "_record_program_pause", + "_regions_intersect", + "_require_current_fault_driver_binding", + "_require_qualification_environment_current", + "_required_effect_pre_state_unreadable", + "_requires_atomic_identity_keyboard", + "_requires_atomic_identity_pointer", + "_reset_render_scale", + "_resettle_after_interstitial", + "_resolve_drag_end", + "_resolve_effects", + "_resolve_graph", + "_resolve_step", + "_resolve_step_target", + "_resolve_worklist", + "_result_model_calls", + "_resume_descend", + "_resume_inside_web_form_span", + "_resume_program_state", + "_resumed_program_results", + "_retain_pixel_identity_evidence", + "_retain_program_transition_evidence", + "_retain_visual_resolution_evidence", + "_revalidate_consequential_actuation", + "_revalidate_retained_postconditions", + "_revalidation_frame_capture", + "_run_states_from", + "_run_step", + "_run_step_on_active_surface", + "_run_step_timed", + "_run_switch_surface_step", + "_run_unsealed", + "_run_unsealed_steps", + "_run_web_form_span", + "_save_step_png", + "_scaled_region_match", + "_scroll_successors", + "_sealed_run_unsupported", + "_select_transition", + "_selection_contract_error", + "_selection_region_compatible", + "_selection_target_continuous", + "_server_response_mark", + "_session_profile_changed", + "_set_api_unavailable_refusal", + "_settle_durable_readback", + "_settle_pipelined_readback", + "_settle_seeded", + "_skip_completed_effect_state", + "_stamp_approval", + "_stamp_execution_outcome", + "_step_has_identity_contract", + "_step_is_consequential", + "_step_needs_consequential_revalidation", + "_step_requires_remote_guarded_actuation", + "_step_requires_remote_identity_binding", + "_structural_changed", + "_structural_state", + "_surface_identity_check", + "_surface_refusal_result", + "_sync_durable_audit", + "_template_mentions_param", + "_text_value_at", + "_translate_recorded_region", + "_try_api_tier", + "_typed_input_landed", + "_typed_remote_receipt_required", + "_unbound_submit_refusal", + "_url_path_targets_param", + "_validate_fault_mutation", + "_verify_current_effect", + "_verify_dedicated_identity_signal", + "_verify_effects", + "_verify_identity", + "_verify_identity_ocr", + "_verify_selected_option", + "_verify_signal_quorum", + "_verify_typed_input", + "_verify_uncertain_api_delivery", + "_wait_for_dialog", + "_wait_for_scroll_transition_and_settle", + "_wait_starting_state_settled", + "_walk_graph", + "_web_form_approval_view", + "_web_form_span_at", + "_web_form_surface_refusal", + "_workflow_snapshot_refusal", + "recheck_deferred_readback", + "revalidate_attended_completion", + "revalidate_attended_program_completion", + "revalidate_linear_checkpoint_state", + "revalidate_program_checkpoint", + "revalidate_program_checkpoint_effects", + "revalidate_program_checkpoint_state", + "revalidate_retained_effects", + "run", + "select_attended_program_transition" + ], + "openadapt_flow.__main__": [ + "MANAGED_SAFETY_FIELDS", + "QUALIFY_DEFINITION", + "QUALIFY_HELP", + "_PREWARM_SKIP_FLAGS", + "_PUSH_JSON_SCHEMA", + "_PUSH_RUNTIME_ATTESTATION_SCHEMAS", + "_RECORD_TARGET_FLAGS", + "_SAFE_BUNDLE_LOAD_GUIDANCE", + "_SEALED_READY_COMMANDS", + "_VIEWPORT", + "_add_approval_flags", + "_add_attest_flags", + "_add_backend_flags", + "_add_browser_session_flags", + "_add_deployment_flags", + "_add_surface_flags", + "_admitted_approval_mode", + "_answer_durable_item_pause", + "_approval_gate_for_run", + "_approval_wait_seconds", + "_approver_settings", + "_attach_cloud_seal", + "_attached_entry_url", + "_attached_web_page", + "_attended_service_from_args", + "_bind_approval_mode", + "_build_and_run_replayer", + "_build_surface_backends", + "_carry_item_approval_to_pause", + "_change_ledger_epilogue", + "_claim_qualification_case_attempt", + "_clear_progress_line", + "_cmd_approve", + "_cmd_approve_sanitized", + "_cmd_approver_grant", + "_cmd_attach_seal", + "_cmd_bench", + "_cmd_benchmark", + "_cmd_bind_record_checks", + "_cmd_business_decisions_serve", + "_cmd_certify", + "_cmd_compile", + "_cmd_compose", + "_cmd_connect", + "_cmd_connector", + "_cmd_console", + "_cmd_demo", + "_cmd_demo_record", + "_cmd_disambiguate", + "_cmd_emit_mcp", + "_cmd_emit_skill", + "_cmd_explain", + "_cmd_for_each", + "_cmd_induce", + "_cmd_item_approval", + "_cmd_lint", + "_cmd_login", + "_cmd_materialize_approved", + "_cmd_narration_attach", + "_cmd_narration_show", + "_cmd_process", + "_cmd_propose_qualification", + "_cmd_push", + "_cmd_qualify", + "_cmd_qualify_campaign", + "_cmd_qualify_drills", + "_cmd_qualify_proposal", + "_cmd_qualify_run_case", + "_cmd_record", + "_cmd_record_capture", + "_cmd_record_desktop", + "_cmd_repair", + "_cmd_replay", + "_cmd_report_break", + "_cmd_report_run", + "_cmd_resume", + "_cmd_review_sanitized", + "_cmd_route", + "_cmd_run", + "_cmd_sanitize", + "_cmd_scaffold_verifier", + "_cmd_seal", + "_cmd_serve_execute", + "_cmd_serve_reward", + "_cmd_silent_saves", + "_cmd_teach", + "_cmd_teach_branch", + "_cmd_tutorial", + "_cmd_validate_hosted", + "_cmd_variants", + "_cmd_verify_run", + "_cmd_visualize", + "_cmd_visualize_process", + "_configured_replayer", + "_connector_flags", + "_decision_supervisor_from_args", + "_default_run_dir", + "_definition_first", + "_demo_progress", + "_deployment_runtime", + "_deployment_sections", + "_emit_local_receipt", + "_enforce_surface_binding", + "_finish_replay", + "_induce_narration_args", + "_induce_with_probes", + "_is_runtime_attestation_schema", + "_is_sha256", + "_is_uuid", + "_load_worklist_file", + "_maybe_attest_pre_state", + "_maybe_attest_run", + "_maybe_report_break", + "_maybe_report_run", + "_merge_record_window_selector", + "_package_version", + "_parse_identifier_region_arg", + "_parse_params", + "_parse_qualification_signal", + "_pinned_lineage", + "_prepare_approval_store", + "_print_break_it_narrative", + "_print_lint_epilogue", + "_print_push_json", + "_propose_lookup_check", + "_push_json_base", + "_push_json_failure", + "_push_json_invalid_response", + "_push_json_result", + "_qualification_drill_driver", + "_qualification_policy", + "_qualification_report", + "_qualification_workflow", + "_qualify_default_form", + "_read_qualification_case_inputs", + "_record_flag_is_set", + "_record_until_stop", + "_recorded_surface", + "_recording_encryption_key", + "_recording_privacy_notices", + "_refuse_missing_citrix_readiness", + "_refuse_shared_readback_session", + "_refuse_unverified_managed_qualification_admission", + "_reject_unbound_record_target_flags", + "_replay_desktop", + "_replay_outcome_epilogue", + "_replay_params", + "_replay_worklist_pool", + "_report_backend_kind", + "_required_sha256", + "_resolve_backend_config", + "_resolve_record_capture_window", + "_resolve_run_approval_mode", + "_resolve_surface_bindings", + "_resolve_worklists", + "_resume_approval_gate", + "_resume_approval_mode", + "_retain_drill_evidence", + "_sealed_input_refusal", + "_sealed_paths_in", + "_stamp_recording_surface", + "_surface_selection_gate", + "_surface_target_origin_or_none", + "_undo_run_target_problem", + "_verify_run_sources", + "_with_drift", + "build_parser", + "main", + "managed_authorization_mismatch" + ], + "openadapt_flow.qualification": [ + "ActionRiskClass", + "ActionRiskClassification", + "EffectVerificationPolicy", + "EnvironmentBoundary", + "EvidenceRef", + "IdentityEnforcement", + "IdentityEvidenceSource", + "IdentityMatchMode", + "IdentityNormalizer", + "IdentityPolicy", + "IdentitySignalKey", + "IdentitySignalPolicy", + "QUALIFICATION_SCHEMA", + "QualificationActionTarget", + "QualificationCase", + "QualificationCaseKind", + "QualificationCaseResult", + "QualificationCertification", + "QualificationError", + "QualificationOutcome", + "QualificationProject", + "QualificationRefusal", + "QualificationRefusalCode", + "QualificationReport", + "QualifiedEntityLabel", + "REMOTE_SAFE_ENTITY_LABELS", + "RequalificationCondition", + "VerificationTier", + "_CONTEXT_ID_RE", + "_HashBoundEvidenceRef", + "_ID_RE", + "_PARAM_RE", + "_QUALIFICATION_CASE_CONTRACT_DOMAIN", + "_QUALIFIED_ENTITY_LABEL_RE", + "_attestation_payload", + "_authorization_parameter_contract", + "_case_evidence_contract_sha256", + "_case_result_integrity_error", + "_case_run_report_integrity_error", + "_declared_effects", + "_default_fault_cases", + "_effect_risk_floor", + "_executable_risk_floor", + "_fault_case_integrity_error", + "_inferred_action_classification", + "_invalidate_certification", + "_judgment_decision_contracts", + "_judgment_evidence_errors", + "_latest_result", + "_now", + "_one_evidence", + "_qualification_actuation_path", + "_qualification_identifier_sha256", + "_read_evidence_bytes", + "_sealed_evidence_bytes", + "_steps_by_id", + "_surface_environment_evidence_refusal", + "_touch", + "_valid_application_identity", + "add_case", + "add_requalification_condition", + "api_folded_step_ids", + "available_identity_sources", + "build_governed_authorization_template", + "certify_project", + "current_certification_matches", + "entity_label_options", + "evaluate_judgment_case_qualification", + "evaluate_qualification", + "identity_policy_independence_errors", + "identity_signal_runtime_available", + "init_project", + "list_entity_labels", + "project_schema", + "qualification_action_requirements", + "qualification_campaign_id_sha256", + "qualification_case_contract_sha256", + "qualification_run_id_sha256", + "record_case_results", + "remote_entity_label", + "remove_entity_label", + "run_cases", + "save_qualified_workflow", + "set_action_classification", + "set_business_decision", + "set_business_decision_deliveries", + "set_case_scope", + "set_effect_policy", + "set_entity_label", + "set_identity_policy", + "set_judgment_cases", + "set_minimum_effect_tier", + "set_qualified_lookup", + "set_trusted_fault_driver_key", + "set_trusted_runner_key", + "sign_case_result", + "workflow_contract_sha256" + ], + "openadapt_flow.ir": [ + "ActionDeliveryReceipt", + "ActionDeliveryUncertainty", + "ActionKind", + "Anchor", + "ApiAdmission", + "ApiBinding", + "ApiIdentityBinding", + "AttendedProgramTransitionEvidence", + "BackendHints", + "BundleManifest", + "BundleProvenance", + "BusinessDecisionEvidence", + "BusinessDecisionEvidenceRequirement", + "BusinessDecisionOption", + "BusinessDecisionSpec", + "ChangeLedgerEffect", + "ChangeLedgerEntry", + "CheckToClickRecheck", + "ConcatTemplate", + "DialogResponse", + "Effect", + "EffectFieldCheck", + "EffectJournalEntry", + "EffectVerificationEvidence", + "ExecutionMode", + "ExecutionOutcomeEnvelope", + "ExecutionTargetKind", + "FreshActuationEvent", + "GovernedAuthorizationParameter", + "GovernedAuthorizationTemplate", + "Guard", + "GuardSource", + "HaltObservation", + "HealEvent", + "HoverEvidence", + "HoverLook", + "IdentityCheck", + "IdentityLook", + "IdentitySignalEvidence", + "IdentitySignalKeyValue", + "IdentityTemplate", + "Interstitial", + "InterstitialActionResult", + "KnownIdEvidence", + "Landmark", + "LoopIterationBinding", + "LoopSpec", + "MANAGED_RESULT_LOSS_DOMAIN", + "MANAGED_RESULT_LOSS_IDEMPOTENCY_DOMAIN", + "MAX_PAGES_OPENED_PER_STEP", + "ManagedResultLossEvidence", + "ObservedSurfaceEnvironment", + "OutcomeContractCounts", + "OutcomeEvidenceClass", + "PRIMARY_SURFACE_ID", + "ParamKind", + "ParamSpec", + "PixelIdentityEvidence", + "Point", + "Postcondition", + "PostconditionContractEvidence", + "PostconditionEvidenceKind", + "PostconditionKind", + "Predicate", + "PredicateKind", + "ProgramExceptionEvidence", + "ProgramExecutionScopeFrame", + "ProgramGraph", + "ProgramGuardAssetEvidence", + "ProgramTransitionEvidence", + "QualifiedEffectRequirement", + "ReadStepSpec", + "ReadbackLadder", + "ReadbackSave", + "Region", + "Relation", + "ReportRedaction", + "Resolution", + "RunReport", + "Rung", + "SCHEMA_VERSION", + "SUBMIT_BINDING_PATH_PATTERN", + "SUBMIT_BINDING_TOKEN_PATTERN", + "SURFACE_ID_PATTERN", + "SafetyRefusalEvidence", + "SelfRepairEvidence", + "SelfRepairStepRecord", + "ServerResponseEvidence", + "StandardChangeEvidence", + "State", + "StateKind", + "Step", + "StepResult", + "StructuralHandle", + "StructuralLocator", + "SubmitBinding", + "SurfaceObservation", + "SurfaceSpec", + "TEMPLATE_AAD", + "TokenTemplate", + "Transition", + "UNDO_ID_PATTERN", + "UNDO_PARAM_PATTERN", + "UnarmedStep", + "UndoLocate", + "UndoProposal", + "UndoRestore", + "UndoStep", + "VariantRouteStamp", + "VisualResolutionEvidence", + "WebFormField", + "WebFormPrecheck", + "WebFormSpec", + "Workflow", + "_CheckLevelName", + "_compiled_full_match", + "_decrypt_template_assets", + "_iter_plaintext_templates", + "_seal_template_assets", + "_verify_sealed_template_integrity", + "business_decision_transition_guard", + "business_decision_transitions", + "lift_to_program", + "managed_result_loss_idempotency_sha256", + "postcondition_contract_sha256", + "postcondition_step_contract_sha256", + "predicate_contract_sha256", + "structural_locator_is_locatable", + "surface_contract_errors" + ] +} diff --git a/packages/flow/tests/test_import_surface.py b/packages/flow/tests/test_import_surface.py new file mode 100644 index 0000000000..f4e8144b11 --- /dev/null +++ b/packages/flow/tests/test_import_surface.py @@ -0,0 +1,116 @@ +"""Names other code relies on stay importable while large modules are split. + +The decomposition plan (docs/design/DECOMPOSITION.md) moves code out of the +modules below. Each move re-exports what it moves, so every import that works +today keeps working. This test pins that surface: the names each module +defines at top level, the names any file in the monorepo imports from it, and +the methods of ``Replayer`` (tests call private methods on an instance). + +The snapshot is ``fixtures/import_surface.json``. When a change deliberately +removes a name (dead code, not a move), regenerate it and say why in the pull +request: + + OPENADAPT_WRITE_IMPORT_SURFACE=1 pytest tests/test_import_surface.py +""" + +from __future__ import annotations + +import ast +import importlib +import json +import os +import re +from pathlib import Path + +import pytest + +FLOW = Path(__file__).resolve().parents[1] +PACKAGES = FLOW.parent +SNAPSHOT = Path(__file__).parent / "fixtures" / "import_surface.json" +MODULES = { + "openadapt_flow.runtime.replayer": "openadapt_flow/runtime/replayer.py", + "openadapt_flow.__main__": "openadapt_flow/__main__.py", + "openadapt_flow.qualification": "openadapt_flow/qualification.py", + "openadapt_flow.ir": "openadapt_flow/ir.py", +} +CLASSES = {"openadapt_flow.runtime.replayer": ["Replayer"]} + + +def _defined(source: str) -> set[str]: + names: set[str] = set() + for node in ast.parse(source).body: + if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef, ast.ClassDef)): + names.add(node.name) + elif isinstance(node, ast.Assign): + names.update(t.id for t in node.targets if isinstance(t, ast.Name)) + elif isinstance(node, ast.AnnAssign) and isinstance(node.target, ast.Name): + names.add(node.target.id) + return names + + +def _imported_elsewhere(module: str) -> set[str]: + pattern = re.compile( + rf"^\s*from {re.escape(module)} import (\([^)]*\)|[^\n]*)", re.MULTILINE + ) + names: set[str] = set() + for path in PACKAGES.rglob("*.py"): + if ".venv" in path.parts or "node_modules" in path.parts: + continue + text = path.read_text(encoding="utf-8", errors="replace") + for match in pattern.finditer(text): + clause = re.sub(r"#[^\n]*", "", match.group(1)) + for item in clause.strip("()").split(","): + name = item.strip().split(" as ")[0].strip() + if name.isidentifier(): + names.add(name) + return names + + +def _methods(module: str, cls: str) -> set[str]: + source = (FLOW / MODULES[module]).read_text(encoding="utf-8") + for node in ast.parse(source).body: + if isinstance(node, ast.ClassDef) and node.name == cls: + return { + n.name + for n in node.body + if isinstance(n, (ast.FunctionDef, ast.AsyncFunctionDef)) + } + raise AssertionError(f"{module}.{cls} not found") + + +def _current() -> dict[str, list[str]]: + surface: dict[str, list[str]] = {} + for module, rel in MODULES.items(): + source = (FLOW / rel).read_text(encoding="utf-8") + surface[module] = sorted(_defined(source) | _imported_elsewhere(module)) + for cls in CLASSES.get(module, []): + surface[f"{module}:{cls}"] = sorted(_methods(module, cls)) + return surface + + +def test_snapshot_is_current_when_regenerating() -> None: + if os.environ.get("OPENADAPT_WRITE_IMPORT_SURFACE") != "1": + pytest.skip("set OPENADAPT_WRITE_IMPORT_SURFACE=1 to regenerate") + SNAPSHOT.write_text(json.dumps(_current(), indent=1) + "\n", encoding="utf-8") + + +@pytest.mark.parametrize("module", sorted(MODULES)) +def test_every_pinned_name_is_still_importable(module: str) -> None: + pinned = json.loads(SNAPSHOT.read_text(encoding="utf-8"))[module] + imported = importlib.import_module(module) + missing = [name for name in pinned if not hasattr(imported, name)] + assert missing == [], ( + f"{module} no longer provides {missing}. A move must re-export what it " + "moves; see the docstring of this test to regenerate after a deliberate " + "removal." + ) + + +@pytest.mark.parametrize( + "module, cls", [(m, c) for m, classes in sorted(CLASSES.items()) for c in classes] +) +def test_every_pinned_method_is_still_on_the_class(module: str, cls: str) -> None: + pinned = json.loads(SNAPSHOT.read_text(encoding="utf-8"))[f"{module}:{cls}"] + klass = getattr(importlib.import_module(module), cls) + missing = [name for name in pinned if not hasattr(klass, name)] + assert missing == [], f"{module}.{cls} lost methods {missing}" diff --git a/scripts/check_file_size_ratchet.py b/scripts/check_file_size_ratchet.py new file mode 100644 index 0000000000..0ff6f7c06c --- /dev/null +++ b/scripts/check_file_size_ratchet.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +"""Fail when a file listed in the decomposition plan grows past its budget. + +The budgets live in one table in packages/flow/docs/design/DECOMPOSITION.md, +between the ``size-ratchet:begin`` and ``size-ratchet:end`` markers. A file may +shrink; it may not grow. When a change shrinks a file, lower its budget in the +same change so the gain is kept. Raising a budget is a reviewed edit to that +table. + +Usage: python scripts/check_file_size_ratchet.py [--root PATH] +""" + +from __future__ import annotations + +import argparse +import re +import sys +from dataclasses import dataclass +from pathlib import Path + +DOC = Path("packages/flow/docs/design/DECOMPOSITION.md") +BEGIN = "" +END = "" +ROW = re.compile(r"^\|\s*`([^`]+)`\s*\|\s*(\d+)\s*\|\s*$") + + +@dataclass(frozen=True) +class Budget: + path: str + lines: int + + +def parse_budgets(doc_text: str) -> list[Budget]: + """Read the budget rows between the markers; refuse a missing or empty table.""" + try: + start = doc_text.index(BEGIN) + len(BEGIN) + end = doc_text.index(END, start) + except ValueError: + raise ValueError(f"{DOC}: size-ratchet markers not found") from None + budgets = [] + for line in doc_text[start:end].splitlines(): + match = ROW.match(line.strip()) + if match: + budgets.append(Budget(match.group(1), int(match.group(2)))) + if not budgets: + raise ValueError(f"{DOC}: size-ratchet table has no rows") + paths = [b.path for b in budgets] + duplicates = sorted({p for p in paths if paths.count(p) > 1}) + if duplicates: + raise ValueError(f"{DOC}: listed more than once: {', '.join(duplicates)}") + return budgets + + +def count_lines(path: Path) -> int: + """Count lines the way ``wc -l`` does.""" + return path.read_bytes().count(b"\n") + + +def check(root: Path) -> tuple[list[str], list[str]]: + """Return (failures, notes) for the budgets in ``root``'s plan.""" + budgets = parse_budgets((root / DOC).read_text(encoding="utf-8")) + failures: list[str] = [] + notes: list[str] = [] + for budget in budgets: + path = root / budget.path + if not path.is_file(): + failures.append( + f"{budget.path}: listed in {DOC} but missing. If it was split or " + "removed, delete its row in the same change." + ) + continue + lines = count_lines(path) + if lines > budget.lines: + failures.append( + f"{budget.path}: {lines} lines, budget {budget.lines} " + f"(+{lines - budget.lines}). Move code out instead of adding it, " + f"or raise the budget in {DOC} with a reason in the pull request." + ) + elif lines < budget.lines: + notes.append( + f"{budget.path}: {lines} lines, budget {budget.lines}. " + f"Lower the budget to {lines} in {DOC}." + ) + return failures, notes + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(description=__doc__.splitlines()[0]) + parser.add_argument( + "--root", type=Path, default=Path(__file__).resolve().parents[1] + ) + args = parser.parse_args(argv) + try: + failures, notes = check(args.root) + except ValueError as exc: + print(f"error: {exc}", file=sys.stderr) + return 2 + for note in notes: + print(f"note: {note}") + for failure in failures: + print(f"error: {failure}", file=sys.stderr) + return 1 if failures else 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/verify_moved_code.py b/scripts/verify_moved_code.py new file mode 100644 index 0000000000..6b1e64cd20 --- /dev/null +++ b/scripts/verify_moved_code.py @@ -0,0 +1,331 @@ +#!/usr/bin/env python3 +"""Prove that a change only moves Python code, without editing it. + +Used for the move commits of the decomposition plan +(packages/flow/docs/design/DECOMPOSITION.md, section 4.2). For every Python +file that changed between ``--base`` and the working tree, each function, +method and other statement that was in the base version must still exist, +with an identical AST, somewhere under the search roots of the working tree. +Positions, comments and formatting are ignored; names, signatures, decorators +and bodies must match exactly. + +A move commit may add three kinds of code, which are reported, not refused: + +* imports, and re-export assignments such as ``name = other.name``; +* protocol stubs: functions whose body is only ``...`` or a docstring; +* class headers whose bases changed (``class Replayer(IdentityChecks, ...)``). + +Any other new function body fails the check unless ``--allow-new`` is given, +because a move commit must not contain an edit. + +It also lists test patches that name a moved module global by its old module +(``"pkg.old.name"`` strings), since the moved code no longer reads that global +from the old module. + +Usage: + python scripts/verify_moved_code.py [--base origin/main] [--root PATH] + (compares with the merge base of --base and HEAD) + [--search packages] [--allow-new] +""" + +from __future__ import annotations + +import argparse +import ast +import re +import subprocess +import sys +from collections import Counter +from dataclasses import dataclass, field +from pathlib import Path + + +@dataclass(frozen=True) +class Unit: + """One comparable piece of code: where it was, and its normalized AST.""" + + file: str + qualname: str + lineno: int + dump: str + is_function: bool + + +@dataclass +class Result: + missing: list[Unit] = field(default_factory=list) + new_bodies: list[Unit] = field(default_factory=list) + new_stubs: list[Unit] = field(default_factory=list) + changed_bases: list[str] = field(default_factory=list) + stale_patches: list[str] = field(default_factory=list) + moved: int = 0 + + @property + def ok(self) -> bool: + return not self.missing and not self.new_bodies + + +def _dump(node: ast.AST) -> str: + return ast.dump(node, annotate_fields=True, include_attributes=False) + + +def _is_import(node: ast.stmt) -> bool: + if isinstance(node, (ast.Import, ast.ImportFrom)): + return True + # ``if TYPE_CHECKING:`` blocks hold imports and the mixin base alias. + return ( + isinstance(node, ast.If) + and isinstance(node.test, ast.Name) + and node.test.id == "TYPE_CHECKING" + ) + + +def _is_reexport(node: ast.stmt) -> bool: + """``name = module.name`` or ``name = other_name``: a re-export, not logic.""" + return ( + isinstance(node, ast.Assign) + and len(node.targets) == 1 + and isinstance(node.targets[0], ast.Name) + and isinstance(node.value, (ast.Name, ast.Attribute)) + ) + + +def _is_stub(node: ast.FunctionDef | ast.AsyncFunctionDef) -> bool: + body = list(node.body) + if ( + body + and isinstance(body[0], ast.Expr) + and isinstance(body[0].value, ast.Constant) + ): + body = body[1:] # docstring + return all( + isinstance(stmt, ast.Expr) + and isinstance(stmt.value, ast.Constant) + and stmt.value.value is Ellipsis + for stmt in body + ) + + +def units(source: str, file: str) -> tuple[list[Unit], dict[str, list[str]]]: + """Comparable units of a module, and each class's base expressions.""" + tree = ast.parse(source, filename=file) + out: list[Unit] = [] + bases: dict[str, list[str]] = {} + + def walk(body: list[ast.stmt], prefix: str) -> None: + for node in body: + if _is_import(node): + continue + if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)): + out.append( + Unit(file, prefix + node.name, node.lineno, _dump(node), True) + ) + elif isinstance(node, ast.ClassDef): + name = prefix + node.name + bases[name] = [ast.unparse(b) for b in node.bases] + [ + ast.unparse(k) for k in node.keywords + ] + for deco in node.decorator_list: + out.append( + Unit( + file, + f"{name}@{ast.unparse(deco)}", + node.lineno, + _dump(deco), + False, + ) + ) + walk(node.body, name + ".") + else: + label = f"{prefix}" + out.append(Unit(file, label, node.lineno, _dump(node), False)) + + walk(tree.body, "") + return out, bases + + +def _git(root: Path, *args: str) -> str: + return subprocess.run( + ["git", *args], cwd=root, check=True, capture_output=True, text=True + ).stdout + + +def _in_roots(path: str, search: list[str]) -> bool: + """Tests and scripts are outside the roots: retargeted patches are edits.""" + return any(path == r or path.startswith(r.rstrip("/") + "/") for r in search) + + +def changed_python_files(root: Path, base: str, search: list[str]) -> list[str]: + names = _git(root, "diff", "--name-only", base, "--", "*.py").split() + return sorted(n for n in names if _in_roots(n, search) and "/tests/" not in n) + + +def base_source(root: Path, base: str, path: str) -> str | None: + try: + return _git(root, "show", f"{base}:{path}") + except subprocess.CalledProcessError: + return None # new file + + +def _module_name(path: str) -> str | None: + """``packages/flow/openadapt_flow/runtime/replayer.py`` -> dotted module.""" + parts = Path(path).with_suffix("").parts + for i, part in enumerate(parts): + if part.startswith("openadapt"): + return ".".join(parts[i:]) + return None + + +def verify(root: Path, base: str, search: list[str]) -> Result: + result = Result() + changed = changed_python_files(root, base, search) + + head_units: Counter[str] = Counter() + head_by_dump: dict[str, list[Unit]] = {} + for search_root in search: + for path in sorted((root / search_root).rglob("*.py")): + if ".venv" in path.parts or "node_modules" in path.parts: + continue + rel = path.relative_to(root).as_posix() + try: + found, _ = units(path.read_text(encoding="utf-8"), rel) + except (SyntaxError, UnicodeDecodeError): + continue + for unit in found: + head_units[unit.dump] += 1 + head_by_dump.setdefault(unit.dump, []).append(unit) + + base_units: Counter[str] = Counter() + moved_globals: dict[str, set[str]] = {} + for path in changed: + old = base_source(root, base, path) + if old is None: + continue + old_units, old_bases = units(old, path) + new_file = root / path + new_units: list[Unit] = [] + new_bases: dict[str, list[str]] = {} + if new_file.is_file(): + new_units, new_bases = units(new_file.read_text(encoding="utf-8"), path) + new_here = {u.dump for u in new_units} + for unit in old_units: + if unit.dump not in head_units: + result.missing.append(unit) + elif unit.dump not in new_here: + base_units[unit.dump] += 1 # left this file; may land elsewhere + result.moved += 1 + if unit.is_function and "." not in unit.qualname: + module = _module_name(path) + if module: + moved_globals.setdefault(module, set()).add(unit.qualname) + for cls, old_cls_bases in old_bases.items(): + if cls in new_bases and new_bases[cls] != old_cls_bases: + result.changed_bases.append( + f"{path}: class {cls}({', '.join(old_cls_bases)}) -> " + f"({', '.join(new_bases[cls])})" + ) + + # Code in the working tree that the base did not have, in changed or new files. + untracked = _git(root, "ls-files", "--others", "--exclude-standard", "--", "*.py") + all_changed = set(changed) | { + n for n in untracked.split() if _in_roots(n, search) and "/tests/" not in n + } + for path in sorted(all_changed): + new_file = root / path + if not new_file.is_file(): + continue + old = base_source(root, base, path) + old_dumps = Counter(u.dump for u in units(old, path)[0]) if old else Counter() + tree = ast.parse(new_file.read_text(encoding="utf-8"), filename=path) + stubs = { + _dump(n) + for n in ast.walk(tree) + if isinstance(n, (ast.FunctionDef, ast.AsyncFunctionDef)) and _is_stub(n) + } + reexports = { + _dump(n) + for n in ast.walk(tree) + if isinstance(n, ast.stmt) and _is_reexport(n) + } + for unit in units(new_file.read_text(encoding="utf-8"), path)[0]: + if unit.dump in old_dumps: + old_dumps[unit.dump] -= 1 + if old_dumps[unit.dump] == 0: + del old_dumps[unit.dump] + continue + if base_units[unit.dump] > 0: + base_units[unit.dump] -= 1 # moved here from a changed file + continue + # A protocol attribute declaration (``backend: Backend``) is a stub. + declaration = ( + unit.dump.startswith("AnnAssign(") and "value=" not in unit.dump + ) + if unit.dump in stubs or unit.dump in reexports or declaration: + result.new_stubs.append(unit) + else: + result.new_bodies.append(unit) + + result.stale_patches = stale_patches(root, moved_globals) + return result + + +def stale_patches(root: Path, moved: dict[str, set[str]]) -> list[str]: + """Test strings that patch a moved global through its old module path.""" + if not moved: + return [] + hits = [] + for path in sorted(root.rglob("test*.py")): + if ".venv" in path.parts: + continue + text = path.read_text(encoding="utf-8", errors="replace") + for module, names in moved.items(): + for name in names: + pattern = rf"[\"']{re.escape(module)}\.{re.escape(name)}[\"']" + for match in re.finditer(pattern, text): + line = text.count("\n", 0, match.start()) + 1 + rel = path.relative_to(root).as_posix() + hits.append(f"{rel}:{line}: patches {module}.{name}") + return hits + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(description=__doc__.splitlines()[0]) + parser.add_argument("--base", default="origin/main") + parser.add_argument( + "--root", type=Path, default=Path(__file__).resolve().parents[1] + ) + parser.add_argument("--search", action="append", default=None) + parser.add_argument("--allow-new", action="store_true") + args = parser.parse_args(argv) + # Compare with where this branch left the base, not with the base's tip, + # so commits that landed on the base since then do not count as edits. + fork_point = _git(args.root, "merge-base", args.base, "HEAD").strip() + result = verify(args.root, fork_point, args.search or ["packages"]) + + print(f"moved units: {result.moved}") + for line in result.changed_bases: + print(f"class bases changed: {line}") + for unit in result.new_stubs: + print(f"new stub or re-export: {unit.file}:{unit.lineno} {unit.qualname}") + for hit in result.stale_patches: + print(f"retarget patch: {hit}") + for unit in result.missing: + print( + f"error: {unit.file}:{unit.lineno} {unit.qualname} is gone or was edited", + file=sys.stderr, + ) + for unit in result.new_bodies: + level = "note" if args.allow_new else "error" + print( + f"{level}: {unit.file}:{unit.lineno} {unit.qualname} is new code", + file=sys.stderr, + ) + if result.missing or result.stale_patches: + return 1 + if result.new_bodies and not args.allow_new: + return 1 + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tests/test_file_size_ratchet.py b/tests/test_file_size_ratchet.py new file mode 100644 index 0000000000..e13c06fdfa --- /dev/null +++ b/tests/test_file_size_ratchet.py @@ -0,0 +1,85 @@ +"""scripts/check_file_size_ratchet.py keeps the largest files from growing.""" + +from __future__ import annotations + +import importlib.util +import sys +from pathlib import Path + +import pytest + +ROOT = Path(__file__).resolve().parents[1] +SCRIPT = ROOT / "scripts/check_file_size_ratchet.py" +_spec = importlib.util.spec_from_file_location("check_file_size_ratchet", SCRIPT) +assert _spec and _spec.loader +ratchet = importlib.util.module_from_spec(_spec) +# dataclasses look the module up in sys.modules while the class is built. +sys.modules[_spec.name] = ratchet +_spec.loader.exec_module(ratchet) + + +def _repo(tmp_path: Path, table: str, files: dict[str, int]) -> Path: + doc = tmp_path / ratchet.DOC + doc.parent.mkdir(parents=True) + doc.write_text( + f"# Plan\n\n{ratchet.BEGIN}\n| File | Line budget |\n|---|---:|\n" + f"{table}{ratchet.END}\n", + encoding="utf-8", + ) + for name, lines in files.items(): + path = tmp_path / name + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text("x\n" * lines, encoding="utf-8") + return tmp_path + + +def test_listed_files_are_within_budget() -> None: + failures, _notes = ratchet.check(ROOT) + assert failures == [] + + +def test_growth_past_budget_fails(tmp_path: Path) -> None: + root = _repo(tmp_path, "| `a.py` | 10 |\n", {"a.py": 11}) + failures, _notes = ratchet.check(root) + assert len(failures) == 1 + assert "a.py: 11 lines, budget 10 (+1)" in failures[0] + assert ratchet.main(["--root", str(root)]) == 1 + + +def test_equal_passes_and_shrink_asks_to_lower(tmp_path: Path) -> None: + root = _repo( + tmp_path, "| `a.py` | 10 |\n| `b.py` | 10 |\n", {"a.py": 10, "b.py": 7} + ) + failures, notes = ratchet.check(root) + assert failures == [] + assert notes == [ + f"b.py: 7 lines, budget 10. Lower the budget to 7 in {ratchet.DOC}." + ] + assert ratchet.main(["--root", str(root)]) == 0 + + +def test_missing_listed_file_fails(tmp_path: Path) -> None: + root = _repo(tmp_path, "| `gone.py` | 10 |\n", {}) + failures, _notes = ratchet.check(root) + assert len(failures) == 1 and "missing" in failures[0] + + +@pytest.mark.parametrize( + "doc_text", + [ + "no markers at all", + f"{ratchet.BEGIN}\n| File | Line budget |\n{ratchet.END}", + f"{ratchet.BEGIN}\n| `a.py` | 1 |\n| `a.py` | 2 |\n{ratchet.END}", + ], + ids=["no-markers", "empty-table", "duplicate-row"], +) +def test_malformed_table_is_refused(doc_text: str) -> None: + with pytest.raises(ValueError): + ratchet.parse_budgets(doc_text) + + +def test_plan_lists_the_ten_largest_files() -> None: + budgets = ratchet.parse_budgets((ROOT / ratchet.DOC).read_text(encoding="utf-8")) + paths = {budget.path for budget in budgets} + assert "packages/flow/openadapt_flow/runtime/replayer.py" in paths + assert len(paths) == 10 diff --git a/tests/test_verify_moved_code.py b/tests/test_verify_moved_code.py new file mode 100644 index 0000000000..bd919dbf77 --- /dev/null +++ b/tests/test_verify_moved_code.py @@ -0,0 +1,173 @@ +"""scripts/verify_moved_code.py tells a pure move from an edit.""" + +from __future__ import annotations + +import importlib.util +import subprocess +import sys +import textwrap +from pathlib import Path + +import pytest + +ROOT = Path(__file__).resolve().parents[1] +SCRIPT = ROOT / "scripts/verify_moved_code.py" +_spec = importlib.util.spec_from_file_location("verify_moved_code", SCRIPT) +assert _spec and _spec.loader +verify_moved_code = importlib.util.module_from_spec(_spec) +# dataclasses look the module up in sys.modules while the class is built. +sys.modules[_spec.name] = verify_moved_code +_spec.loader.exec_module(verify_moved_code) + +PKG = "packages/demo/openadapt_demo" + +BASE = '''\ +"""Replayer.""" +import os + +LIMIT = 3 + + +def helper(x): + return x + LIMIT + + +class Replayer: + def __init__(self): + self.backend = os.name + + def run(self): + return self._check() and helper(1) + + def _check(self): + # the identity check + return len(self.backend) > 0 +''' + +MOVED_REPLAYER = '''\ +"""Replayer.""" +import os + +from openadapt_demo.replay.identity import LIMIT, IdentityChecks, helper # noqa: F401 + + +class Replayer(IdentityChecks): + def __init__(self): + self.backend = os.name + + def run(self): + return self._check() and helper(1) +''' + +MIXIN = """\ +from typing import TYPE_CHECKING, Protocol + +LIMIT = 3 + + +class _IdentityHost(Protocol): + backend: str + + def run(self) -> bool: ... + + +if TYPE_CHECKING: + _Base = _IdentityHost +else: + _Base = object + + +def helper(x): + return x + LIMIT + + +class IdentityChecks(_Base): + def _check(self): + return len(self.backend) > 0 +""" + + +def _git(repo: Path, *args: str) -> None: + subprocess.run(["git", *args], cwd=repo, check=True, capture_output=True) + + +@pytest.fixture +def repo(tmp_path: Path) -> Path: + _git(tmp_path, "init", "-q") + _git(tmp_path, "config", "user.email", "t@example.com") + _git(tmp_path, "config", "user.name", "t") + _write(tmp_path, f"{PKG}/replayer.py", BASE) + _write(tmp_path, f"{PKG}/__init__.py", "") + _git(tmp_path, "add", "-A") + _git(tmp_path, "commit", "-q", "-m", "base") + return tmp_path + + +def _write(repo: Path, rel: str, text: str) -> None: + path = repo / rel + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(textwrap.dedent(text), encoding="utf-8") + + +def _verify(repo: Path) -> verify_moved_code.Result: + return verify_moved_code.verify(repo, "HEAD", ["packages"]) + + +def test_a_pure_move_into_a_mixin_passes(repo: Path) -> None: + _write(repo, f"{PKG}/replayer.py", MOVED_REPLAYER) + _write(repo, f"{PKG}/replay/__init__.py", "") + _write(repo, f"{PKG}/replay/identity.py", MIXIN) + + result = _verify(repo) + + assert result.ok, (result.missing, result.new_bodies) + assert result.moved == 3 # LIMIT, helper and Replayer._check + assert any( + "class Replayer() -> (IdentityChecks)" in c for c in result.changed_bases + ) + stubs = {unit.qualname for unit in result.new_stubs} + assert {"_IdentityHost.run"} <= stubs + assert verify_moved_code.main(["--root", str(repo), "--base", "HEAD"]) == 0 + + +def test_an_edit_hidden_in_a_move_fails(repo: Path) -> None: + _write(repo, f"{PKG}/replayer.py", MOVED_REPLAYER) + _write(repo, f"{PKG}/replay/__init__.py", "") + _write(repo, f"{PKG}/replay/identity.py", MIXIN.replace("> 0", ">= 0")) + + result = _verify(repo) + + assert [unit.qualname for unit in result.missing] == ["Replayer._check"] + assert [unit.qualname for unit in result.new_bodies] == ["IdentityChecks._check"] + assert verify_moved_code.main(["--root", str(repo), "--base", "HEAD"]) == 1 + + +def test_new_logic_fails_unless_allowed(repo: Path) -> None: + _write(repo, f"{PKG}/replayer.py", BASE + "\n\ndef extra():\n return 1\n") + + result = _verify(repo) + + assert result.missing == [] + assert [unit.qualname for unit in result.new_bodies] == ["extra"] + args = ["--root", str(repo), "--base", "HEAD"] + assert verify_moved_code.main(args) == 1 + assert verify_moved_code.main([*args, "--allow-new"]) == 0 + + +def test_a_patch_through_the_old_module_is_flagged(repo: Path) -> None: + _write(repo, f"{PKG}/replayer.py", MOVED_REPLAYER) + _write(repo, f"{PKG}/replay/__init__.py", "") + _write(repo, f"{PKG}/replay/identity.py", MIXIN) + _write( + repo, + "packages/demo/tests/test_demo.py", + "def test_x(monkeypatch):\n" + ' monkeypatch.setattr("openadapt_demo.replayer.helper", lambda x: 0)\n', + ) + + result = _verify(repo) + + assert result.stale_patches == [ + "packages/demo/tests/test_demo.py:2: patches openadapt_demo.replayer.helper" + ] + assert verify_moved_code.main(["--root", str(repo), "--base", "HEAD"]) == 1 From 2dcefcd28255f8ce0ebd13ae45f2c1e45c823dc5 Mon Sep 17 00:00:00 2001 From: abrichr Date: Sat, 24 Oct 2026 14:49:56 -0400 Subject: [PATCH 02/17] ci(flow): report safety-path coverage from the unit shards Each flow-unit shard keeps its coverage data; flow-coverage combines them and writes the safety-path number to the job summary. It is not in packages-gate: the floor is set at the measured value once known. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/packages.yml | 65 +++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 20556c037f..d1206fab1f 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -395,11 +395,74 @@ jobs: | LC_ALL=C sort | awk -v s="$SHARD" 'NR % 4 == s % 4' > "$RUNNER_TEMP/shard.txt" wc -l < "$RUNNER_TEMP/shard.txt" - name: Test + env: + # Each shard keeps its coverage data; flow-coverage combines them. + COVERAGE_FILE: runs/coverage-shard-${{ matrix.shard }}.data run: | set -euo pipefail mkdir -p runs mapfile -t files < "$RUNNER_TEMP/shard.txt" - pytest -vv --durations=20 --basetemp=runs/ci "${files[@]}" + pytest -vv --durations=20 --basetemp=runs/ci \ + --cov --cov-report= "${files[@]}" + - name: Upload coverage data + if: always() + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 + with: + name: flow-coverage-shard-${{ matrix.shard }} + path: packages/flow/runs/coverage-shard-${{ matrix.shard }}.data + if-no-files-found: warn + retention-days: 14 + + flow-coverage: + # Measures safety-path coverage and reports it in the job summary. It does + # not gate yet: the floor is set at the measured value once it is known + # (docs/design/DECOMPOSITION.md, section 9). Keep the include list in sync + # with the strict mypy list above and CODEOWNERS. + name: flow safety-path coverage (reported, not gating) + needs: [scope, flow-unit] + if: always() && needs.scope.outputs.flow == 'true' + runs-on: ubuntu-latest + timeout-minutes: 10 + defaults: + run: + working-directory: packages/flow + env: + SAFETY_PATH: >- + openadapt_flow/compiler/*,openadapt_flow/identity_signals.py,openadapt_flow/runtime/identity*,openadapt_flow/runtime/replayer.py,openadapt_flow/runtime/replay/*,openadapt_flow/runtime/resolver.py,openadapt_flow/submit_binding.py,openadapt_flow/policy.py,openadapt_flow/qualification.py,openadapt_flow/runtime/effects/* + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version: "3.12" + - name: Install coverage + run: pip install 'coverage[toml]>=7' + - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 + with: + pattern: flow-coverage-shard-* + path: packages/flow/runs/coverage + merge-multiple: true + - name: Combine and report + run: | + set -euo pipefail + ls runs/coverage + coverage combine --keep runs/coverage/*.data + { + echo "## Flow safety-path coverage (reported, not gating)" + echo + echo '```' + coverage report --include="$SAFETY_PATH" --skip-covered --sort=cover | tail -40 + echo '```' + } >> "$GITHUB_STEP_SUMMARY" + coverage report --include="$SAFETY_PATH" --format=total + coverage json --include="$SAFETY_PATH" -o runs/safety-path-coverage.json + - name: Upload the report + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 + with: + name: flow-safety-path-coverage + path: packages/flow/runs/safety-path-coverage.json + retention-days: 30 flow-critical: name: flow core critical (golden VERIFIED, zero model calls) From 80c211be5a422720b77cfd88c02e7ecbcbbda8bf Mon Sep 17 00:00:00 2001 From: abrichr Date: Sat, 24 Oct 2026 14:59:00 -0400 Subject: [PATCH 03/17] test(flow): golden runs of the replayer on the real browser and MockMed Nine scenarios replay one committed MockMed triage bundle under different drifts through the real Replayer and PlaywrightBackend: clean passes (with and without the structural rung), identity halts (missing, look-alike, growth, sort), a modal postcondition halt, the irreversible-step risk gate and theme healing. Each compares the normalized report, the hash of every file the run wrote, the backend action trace and the live app state with a baseline. Writing a baseline runs the scenario twice and refuses values that differ between identical runs. Baselines are Linux results generated in the flow-critical job; unit shards skip the scenarios. CODEOWNERS covers the packages the plan adds. Co-Authored-By: Claude Opus 5.5 --- .github/CODEOWNERS | 2 + .github/workflows/packages.yml | 21 +- packages/flow/tests/golden_runs/__init__.py | 0 packages/flow/tests/golden_runs/harness.py | 308 ++++++++++++++++++ .../tests/golden_runs/test_golden_runs.py | 171 ++++++++++ .../flow/tests/golden_runs/test_harness.py | 104 ++++++ 6 files changed, 605 insertions(+), 1 deletion(-) create mode 100644 packages/flow/tests/golden_runs/__init__.py create mode 100644 packages/flow/tests/golden_runs/harness.py create mode 100644 packages/flow/tests/golden_runs/test_golden_runs.py create mode 100644 packages/flow/tests/golden_runs/test_harness.py diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4390a40201..ce73ca3333 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -11,7 +11,9 @@ /packages/flow/openadapt_flow/policy.py @abrichr /packages/flow/openadapt_flow/policies/ @abrichr /packages/flow/openadapt_flow/qualification.py @abrichr +/packages/flow/openadapt_flow/qualification/ @abrichr /packages/flow/openadapt_flow/runtime/replayer.py @abrichr +/packages/flow/openadapt_flow/runtime/replay/ @abrichr /packages/flow/openadapt_flow/runtime/resolver.py @abrichr /packages/flow/openadapt_flow/submit_binding.py @abrichr /packages/flow/openadapt_flow/validation/ @abrichr diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index d1206fab1f..a8fc4e0005 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -392,6 +392,7 @@ jobs: find tests -name 'test_*.py' -not -path 'tests/e2e/*' \ -not -path 'tests/test_install_playwright_browser.py' \ -not -path 'tests/test_qualification_gate_campaign.py' \ + -not -path 'tests/golden_runs/test_golden_runs.py' \ | LC_ALL=C sort | awk -v s="$SHARD" 'NR % 4 == s % 4' > "$RUNNER_TEMP/shard.txt" wc -l < "$RUNNER_TEMP/shard.txt" - name: Test @@ -506,6 +507,24 @@ jobs: run: | pytest -vv --durations=20 tests/e2e/test_record_compile_replay.py \ --basetemp=runs/ci-rcr --junitxml=runs/rcr-junit.xml + - name: Golden runs (report, artifacts and actions unchanged) + # docs/design/DECOMPOSITION.md, section 3.1. The baselines are Linux + # results; OPENADAPT_GOLDEN_WRITE=1 regenerates them (upload below). + env: + OPENADAPT_GOLDEN_OUT: runs/golden + run: | + pytest -vv --durations=20 tests/golden_runs \ + --basetemp=runs/ci-goldens --junitxml=runs/goldens-junit.xml + - name: Upload golden-run results + if: always() + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 + with: + name: flow-golden-runs + path: | + packages/flow/runs/golden + packages/flow/tests/golden_runs/baselines + if-no-files-found: warn + retention-days: 14 - name: Read-back and zero-model-call tests, by name run: | pytest -vv --durations=20 \ @@ -528,7 +547,7 @@ jobs: import sys import xml.etree.ElementTree as ET bad = False - for name in ("golden", "rcr", "critical"): + for name in ("golden", "rcr", "goldens", "critical"): root = ET.parse(f"runs/{name}-junit.xml").getroot() suites = [root] if root.tag == "testsuite" else list(root.iter("testsuite")) tests = sum(int(s.get("tests", 0)) for s in suites) diff --git a/packages/flow/tests/golden_runs/__init__.py b/packages/flow/tests/golden_runs/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/flow/tests/golden_runs/harness.py b/packages/flow/tests/golden_runs/harness.py new file mode 100644 index 0000000000..520d9bc1b4 --- /dev/null +++ b/packages/flow/tests/golden_runs/harness.py @@ -0,0 +1,308 @@ +"""Golden runs: prove a refactor leaves what a run does and writes unchanged. + +A golden run executes a workflow with the real ``Replayer`` against a real +backend and a local fixture app, then keeps three things: + +* the run report, with values that change on every run (times, durations, + run ids, temporary paths) replaced by placeholders; +* the SHA-256 of every file the run wrote, except files whose bytes embed + those values (the report itself, which is compared normalized instead); +* the backend action trace: every call that delivers input or changes the + app's state (click, type, press, scroll, drag, hover, guard arming and + cancelling, dialogs), in order, with its arguments summarized. Observations + such as screenshots are left out, because settle loops poll a number of + times that depends on timing. + +The baselines are generated in CI on Linux, where the browser build is +pinned, and committed. A behavior-preserving change must reproduce them +exactly. See docs/design/DECOMPOSITION.md, section 3.1. +""" + +from __future__ import annotations + +import hashlib +import inspect +import json +import os +import re +import sys +from dataclasses import dataclass, field +from enum import Enum +from pathlib import Path +from typing import Any, Callable + +BASELINES = Path(__file__).parent / "baselines" +WRITE_ENV = "OPENADAPT_GOLDEN_WRITE" +OUT_ENV = "OPENADAPT_GOLDEN_OUT" + +# Report keys whose values differ between two identical runs: wall-clock +# times, durations, run ids and what is derived from them, and the digest of +# the observed environment (it covers the fixture server's ephemeral port). +# Everything else, digests of the committed bundle included, is compared. +VOLATILE_KEYS = re.compile( + r"(_at|_ms|^timings|^run_id|_run_id|^run_id_sha256|^idempotency_key|" + r"^observed_environment_digest|^started|^elapsed)$" +) +# Random per-run tokens that other fields refer to (see Normalizer). +NONCE_KEYS = re.compile(r"(fingerprint|^receipt_id|_token)$") +_FLOAT_DIGITS = 3 + +# Backend methods that act on the app. Everything else only observes it. +ACTION_METHODS = re.compile( + r"^(click|right_click|hover|scroll|press|press_guarded|type_text|" + r"type_text_guarded|drag|drag_guarded|drag_structural_guarded|" + r"act_guarded_coordinate|act_structural|arm_[a-z_]+|cancel_[a-z_]+|" + r"take_dialogs|expect_page_close|set_qualification_input_guard|" + r"select_option[a-z_]*|navigate|goto)$" +) + + +def tracing_backend(inner: Any, trace: list[dict[str, Any]]) -> Any: + """The same backend, recording every action call into ``trace``. + + The result is an instance of a subclass of the backend's own class that + shares the original's instance state, so every capability check gives the + same answer: the backend protocols are ``runtime_checkable``, and on + Python 3.12 ``isinstance`` looks their members up statically on the + class, which a ``__getattr__`` proxy would fail. Calls the backend makes + on itself are recorded too. + """ + base = type(inner) + namespace: dict[str, Any] = {} + for name in dir(base): + if not ACTION_METHODS.match(name): + continue + static = inspect.getattr_static(base, name) + if isinstance(static, (staticmethod, classmethod, property)) or not callable( + static + ): + continue + namespace[name] = _traced_method(name, getattr(base, name), trace) + cls = type(f"Tracing{base.__name__}", (base,), namespace) + traced = object.__new__(cls) + traced.__dict__ = inner.__dict__ # shared state, not a copy + return traced + + +def _traced_method( + name: str, function: Callable[..., Any], trace: list[dict[str, Any]] +) -> Callable[..., Any]: + def method(self: Any, *args: Any, **kwargs: Any) -> Any: + entry: dict[str, Any] = {"call": name} + if args: + entry["args"] = [summarize(a) for a in args] + if kwargs: + entry["kwargs"] = {k: summarize(v) for k, v in sorted(kwargs.items())} + trace.append(entry) + try: + result = function(self, *args, **kwargs) + except BaseException as exc: + entry["raised"] = type(exc).__name__ + raise + if isinstance(result, (bytes, bytearray)): + entry["returned"] = summarize(result) + return result + + method.__name__ = name + return method + + +def summarize(value: Any) -> Any: + """A stable, JSON-friendly summary of a call argument.""" + if isinstance(value, (bytes, bytearray)): + return {"sha256": hashlib.sha256(value).hexdigest()[:16], "len": len(value)} + if isinstance(value, float): + return round(value, _FLOAT_DIGITS) + if isinstance(value, (str, int, bool)) or value is None: + return value + if isinstance(value, Enum): + return f"{type(value).__name__}.{value.name}" + if isinstance(value, (list, tuple)): + return [summarize(v) for v in value] + if isinstance(value, dict): + return {str(k): summarize(v) for k, v in sorted(value.items(), key=str)} + if hasattr(value, "model_dump"): + return { + "type": type(value).__name__, + **summarize(value.model_dump(mode="json")), + } + if hasattr(value, "__dataclass_fields__"): + fields = {n: getattr(value, n) for n in value.__dataclass_fields__} + return {"type": type(value).__name__, **summarize(fields)} + return {"type": type(value).__name__} + + +class Normalizer: + """Replaces values that change between identical runs with placeholders. + + Times, durations and run ids become ````. Random guard tokens and + receipt ids (``NONCE_KEYS``) become ````, numbered by first + appearance and replaced wherever the same value appears again, so the + baseline still shows that the handle a step resolved is the handle it + acted on. Use one instance for everything one run produced. + """ + + def __init__(self, roots: list[str]) -> None: + self.roots = [r for r in roots if r] + self.nonces: dict[str, str] = {} + + def collect(self, value: Any, key: str = "") -> None: + """Number every nonce value before normalizing, in document order.""" + if isinstance(value, dict): + for k, v in value.items(): + self.collect(v, k) + elif isinstance(value, list): + for v in value: + self.collect(v, key) + elif isinstance(value, str) and key and NONCE_KEYS.search(key.lower()): + if value not in self.nonces: + count = sum(1 for p in self.nonces.values() if p.startswith(f"<{key}#")) + self.nonces[value] = f"<{key}#{count + 1}>" + + def __call__(self, value: Any, key: str = "") -> Any: + if key and VOLATILE_KEYS.search(key.lower()) and value is not None: + return f"<{key}>" + if isinstance(value, dict): + return {k: self(v, k) for k, v in value.items()} + if isinstance(value, list): + return [self(v, key) for v in value] + if isinstance(value, float): + return round(value, _FLOAT_DIGITS) + if isinstance(value, str): + if value in self.nonces: + return self.nonces[value] + for i, root in enumerate(self.roots): + value = value.replace(root, f"") + return value + return value + + +def normalize(value: Any, *, roots: list[str]) -> Any: + """Normalize one value on its own (see :class:`Normalizer`).""" + normalizer = Normalizer(roots) + normalizer.collect(value) + return normalizer(value) + + +def artifact_hashes(run_dir: Path, *, skip: set[str]) -> dict[str, str]: + """SHA-256 of every file a run wrote, keyed by its path in the run dir.""" + hashes = {} + for path in sorted(p for p in run_dir.rglob("*") if p.is_file()): + rel = path.relative_to(run_dir).as_posix() + if rel in skip: + continue + hashes[rel] = hashlib.sha256(path.read_bytes()).hexdigest() + return hashes + + +@dataclass +class GoldenResult: + """What a scenario produced, ready to compare with its baseline.""" + + report: dict[str, Any] + artifacts: dict[str, str] + trace: list[dict[str, Any]] + environment: dict[str, str] = field(default_factory=dict) + # Ground truth read from the live app after the run: tells a safe halt + # from a wrong action the report did not notice. + app_state: dict[str, Any] = field(default_factory=dict) + + def as_json(self) -> dict[str, Any]: + return { + "environment": self.environment, + "app_state": self.app_state, + "report": self.report, + "artifacts": self.artifacts, + "trace": self.trace, + } + + +def environment() -> dict[str, str]: + """What the baseline depends on outside the code under test.""" + import importlib.metadata as metadata + + env = {"platform": sys.platform} + try: + env["playwright"] = metadata.version("playwright") + except metadata.PackageNotFoundError: + env["playwright"] = "absent" + return env + + +def check_or_write(name: str, produce: Callable[[], GoldenResult]) -> None: + """Compare a scenario with its baseline, or write the baseline. + + In write mode the scenario runs twice and the two results must be equal, + so a value that changes between identical runs is found before it is + committed. The actual result is also written to ``$OPENADAPT_GOLDEN_OUT`` + when set, so CI can upload it. + """ + import pytest + + baseline_path = BASELINES / f"{name}.json" + writing = os.environ.get(WRITE_ENV) == "1" + if not writing: + if not baseline_path.is_file(): + pytest.skip(f"no baseline for {name}; generate it in CI ({WRITE_ENV}=1)") + expected = json.loads(baseline_path.read_text(encoding="utf-8")) + if expected["environment"].get("platform") != sys.platform: + pytest.skip( + f"baseline recorded on {expected['environment'].get('platform')}; " + "screens render differently on other platforms" + ) + + first = produce() + actual = first.as_json() + _write_out(name, actual) + + if writing: + second = produce().as_json() + assert _canonical(second) == _canonical(actual), ( + f"{name}: two identical runs differ; normalize the changing value " + "before writing a baseline:\n" + _first_difference(actual, second) + ) + BASELINES.mkdir(parents=True, exist_ok=True) + baseline_path.write_text(_canonical(actual), encoding="utf-8") + return + + if expected["environment"] != actual["environment"]: + raise AssertionError( + f"{name}: baseline environment {expected['environment']} differs from " + f"{actual['environment']}; regenerate the baselines in CI " + f"({WRITE_ENV}=1) in a change of its own." + ) + assert _canonical(actual) == _canonical(expected), ( + f"{name}: the run differs from its golden baseline:\n" + + _first_difference(expected, actual) + ) + + +def _canonical(value: Any) -> str: + return json.dumps(value, indent=1, sort_keys=True, ensure_ascii=False) + "\n" + + +def _write_out(name: str, actual: dict[str, Any]) -> None: + out = os.environ.get(OUT_ENV) + if out: + Path(out).mkdir(parents=True, exist_ok=True) + (Path(out) / f"{name}.json").write_text(_canonical(actual), encoding="utf-8") + + +def _first_difference(expected: Any, actual: Any, path: str = "$") -> str: + if type(expected) is not type(actual): + return f"{path}: {expected!r} != {actual!r}" + if isinstance(expected, dict): + for key in sorted(set(expected) | set(actual)): + if key not in expected: + return f"{path}.{key}: unexpected {actual[key]!r}"[:2000] + if key not in actual: + return f"{path}.{key}: missing (expected {expected[key]!r})"[:2000] + if expected[key] != actual[key]: + return _first_difference(expected[key], actual[key], f"{path}.{key}") + if isinstance(expected, list): + for i, (a, b) in enumerate(zip(expected, actual)): + if a != b: + return _first_difference(a, b, f"{path}[{i}]") + if len(expected) != len(actual): + return f"{path}: length {len(expected)} != {len(actual)}" + return f"{path}: {expected!r} != {actual!r}"[:2000] diff --git a/packages/flow/tests/golden_runs/test_golden_runs.py b/packages/flow/tests/golden_runs/test_golden_runs.py new file mode 100644 index 0000000000..e6d88445d9 --- /dev/null +++ b/packages/flow/tests/golden_runs/test_golden_runs.py @@ -0,0 +1,171 @@ +"""Golden runs of the replayer against the real browser and MockMed. + +Each scenario replays one committed bundle (the canonical MockMed triage +demo, recorded and compiled once in CI on Linux) under a different MockMed +drift, through the real ``Replayer`` and ``PlaywrightBackend``. The run +report, the hashes of every file the run wrote, the backend action trace and +the live app state afterwards must match the committed baseline exactly. + +A behavior-preserving refactor reproduces every baseline. A deliberate +behavior change regenerates them in CI in a change of its own: +``OPENADAPT_GOLDEN_WRITE=1 pytest tests/golden_runs`` (see harness.py). + +Scenarios that depend on timing (MockMed's ``slow`` drift) are left out on +purpose: a golden run must give the same result every time. +""" + +from __future__ import annotations + +import json +import os +import shutil +from collections.abc import Iterator +from pathlib import Path + +import pytest + +from openadapt_flow.backends.playwright_backend import PlaywrightBackend +from openadapt_flow.ir import Workflow +from openadapt_flow.runtime import Replayer +from tests.golden_runs.harness import ( + BASELINES, + WRITE_ENV, + GoldenResult, + Normalizer, + artifact_hashes, + check_or_write, + environment, + tracing_backend, +) + +pytestmark = pytest.mark.timeout(900) + +NOTE_TEXT = "Golden triage booking three months" +PARAMS = {"note": NOTE_TEXT} +VIEWPORT = {"width": 1280, "height": 800} +BUNDLE_DIR = BASELINES / "bundles" / "mockmed-triage" + +# name -> (MockMed drift, use_structural) +SCENARIOS: dict[str, tuple[str, bool]] = { + # A clean run that saves the encounter. + "mockmed_pass": ("", False), + # The same run with the structural (DOM) rung enabled. + "mockmed_pass_structural": ("", True), + # The target patient row is missing: the identity check halts before input. + "mockmed_missing_row": ("missing", False), + # A look-alike row sits above the target: never act on the wrong patient. + "mockmed_lookalike_row": ("lookalike", False), + # More rows than recorded: still the right patient or a halt. + "mockmed_data_growth": ("grow", False), + # A modal covers the page: the postcondition fails and names the step. + "mockmed_modal": ("modal", False), + # The Save button is renamed: an irreversible step refuses a low rung. + "mockmed_rename": ("rename", False), + # A different theme: lower rungs re-locate targets and heal anchors. + "mockmed_theme": ("theme", False), + # Rows sorted differently from the recording. + "mockmed_sort": ("sort", False), +} + + +@pytest.fixture(scope="module") +def browser(bundle_dir: Path) -> Iterator[object]: + # Depends on bundle_dir so a recording, which runs its own sync + # Playwright, finishes before this one starts (one per thread). + from playwright.sync_api import sync_playwright + + with sync_playwright() as playwright: + chromium = playwright.chromium.launch(headless=True) + yield chromium + chromium.close() + + +@pytest.fixture(scope="module") +def mockmed_url() -> Iterator[str]: + from openadapt_flow.mockmed.server import serve + + url, stop = serve(port=0) + yield url.rstrip("/") + stop() + + +@pytest.fixture(scope="module") +def bundle_dir(mockmed_url: str, tmp_path_factory: pytest.TempPathFactory) -> Path: + """The committed bundle; recorded and compiled only when writing baselines.""" + if (BUNDLE_DIR / "workflow.json").is_file(): + return BUNDLE_DIR + if os.environ.get(WRITE_ENV) != "1": + pytest.skip(f"no committed bundle at {BUNDLE_DIR}; generate in CI") + from openadapt_flow.compiler import compile_recording + from openadapt_flow.demo_driver import record_triage_demo + + recording = record_triage_demo( + mockmed_url, tmp_path_factory.mktemp("recording"), note_text=NOTE_TEXT + ) + staging = tmp_path_factory.mktemp("bundle") + compile_recording(recording, staging, name="golden-triage") + BUNDLE_DIR.parent.mkdir(parents=True, exist_ok=True) + shutil.copytree(staging, BUNDLE_DIR) + return BUNDLE_DIR + + +def _replay( + browser: object, + bundle: Path, + url: str, + run_dir: Path, + *, + use_structural: bool, +) -> GoldenResult: + page = browser.new_page(viewport=VIEWPORT, device_scale_factor=1) + trace: list[dict] = [] + try: + page.goto(url) + backend = tracing_backend(PlaywrightBackend(page), trace) + Replayer(backend, use_structural=use_structural).run( + Workflow.load(bundle), + params=PARAMS, + bundle_dir=bundle, + run_dir=run_dir, + ) + app_state = { + "hash": page.evaluate("location.hash"), + "banner": page.evaluate( + "(document.getElementById('saved-banner') || {}).textContent || null" + ), + "enc_item": page.evaluate( + "(document.querySelector('.enc-item') || {}).textContent || null" + ), + } + finally: + page.close() + report = json.loads((run_dir / "report.json").read_text(encoding="utf-8")) + normalizer = Normalizer([str(run_dir), str(bundle), url]) + normalizer.collect(report) + return GoldenResult( + report=normalizer(report), + # The report embeds times and paths; it is compared normalized above. + artifacts=artifact_hashes(run_dir, skip={"report.json"}), + trace=normalizer(trace), + environment=environment(), + app_state=normalizer(app_state), + ) + + +@pytest.mark.parametrize("name", sorted(SCENARIOS)) +def test_golden_run( + name: str, + browser: object, + mockmed_url: str, + bundle_dir: Path, + tmp_path: Path, +) -> None: + drift, use_structural = SCENARIOS[name] + url = f"{mockmed_url}/?drift={drift}" if drift else f"{mockmed_url}/" + attempts = iter(range(1, 10)) + + def produce() -> GoldenResult: + run_dir = tmp_path / f"run{next(attempts)}" + return _replay(browser, bundle_dir, url, run_dir, use_structural=use_structural) + + check_or_write(name, produce) diff --git a/packages/flow/tests/golden_runs/test_harness.py b/packages/flow/tests/golden_runs/test_harness.py new file mode 100644 index 0000000000..68d6847618 --- /dev/null +++ b/packages/flow/tests/golden_runs/test_harness.py @@ -0,0 +1,104 @@ +"""The golden-run harness records faithfully and hides only volatile values.""" + +from __future__ import annotations + +from pathlib import Path + +import pytest + +from openadapt_flow.backend import ( + GuardedCoordinateActionBackend, + RemoteActuationBackend, + RichPointerActionBackend, +) +from tests.golden_runs.harness import ( + artifact_hashes, + normalize, + tracing_backend, +) + + +class _PointerOnly: + viewport = (1280, 800) + + def screenshot(self) -> bytes: + return b"png-bytes" + + def click(self, x: int, y: int) -> None: + self.clicked = (x, y) + + def right_click(self, x: int, y: int) -> None: ... + + def drag(self, x0: int, y0: int, x1: int, y1: int) -> None: ... + + def hover(self, x: int, y: int) -> None: ... + + +def test_proxy_has_exactly_the_capabilities_of_the_backend() -> None: + inner = _PointerOnly() + proxy = tracing_backend(inner, []) + for protocol in ( + RichPointerActionBackend, + GuardedCoordinateActionBackend, + RemoteActuationBackend, + ): + assert isinstance(proxy, protocol) == isinstance(inner, protocol), protocol + + +def test_proxy_records_calls_in_order_and_forwards_results() -> None: + trace: list[dict] = [] + inner = _PointerOnly() + proxy = tracing_backend(inner, trace) + + assert proxy.screenshot() == b"png-bytes" + proxy.click(10, y=20) + + assert inner.clicked == (10, 20) # state is shared with the original + assert isinstance(proxy, _PointerOnly) + assert proxy.viewport == (1280, 800) + # Observations such as screenshots are not part of the action trace. + assert trace == [{"call": "click", "args": [10], "kwargs": {"y": 20}}] + + +def test_proxy_records_a_raised_exception() -> None: + class Failing: + def click(self, x: int, y: int) -> None: + raise TimeoutError("gone") + + trace: list[dict] = [] + with pytest.raises(TimeoutError): + tracing_backend(Failing(), trace).click(1, 2) + assert trace == [{"call": "click", "args": [1, 2], "raised": "TimeoutError"}] + + +def test_normalize_hides_times_ids_and_roots_but_keeps_outcomes() -> None: + report = { + "success": False, + "started_at": "2026-10-24T10:00:00Z", + "run_id": "abc", + "steps": [ + {"elapsed_ms": 1234, "timeout_s": 5.0, "error": "halted in /tmp/x/run"} + ], + "confidence": 0.123456, + } + assert normalize(report, roots=["/tmp/x"]) == { + "success": False, + "started_at": "", + "run_id": "", + "steps": [ + { + "elapsed_ms": "", + "timeout_s": 5.0, + "error": "halted in /run", + } + ], + "confidence": 0.123, + } + + +def test_artifact_hashes_skip_named_files(tmp_path: Path) -> None: + (tmp_path / "steps").mkdir() + (tmp_path / "steps" / "a.png").write_bytes(b"a") + (tmp_path / "report.json").write_text("{}") + hashes = artifact_hashes(tmp_path, skip={"report.json"}) + assert list(hashes) == ["steps/a.png"] From 680a956717cf163757eb3363d9301156f240c4ff Mon Sep 17 00:00:00 2001 From: abrichr Date: Sat, 24 Oct 2026 14:59:10 -0400 Subject: [PATCH 04/17] ci(flow): TEMPORARY write the first Linux golden baselines Reverted once the baselines from this run are committed. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/packages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index a8fc4e0005..19fef4986d 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -512,6 +512,7 @@ jobs: # results; OPENADAPT_GOLDEN_WRITE=1 regenerates them (upload below). env: OPENADAPT_GOLDEN_OUT: runs/golden + OPENADAPT_GOLDEN_WRITE: "1" # TEMPORARY: first Linux baselines; removed before review run: | pytest -vv --durations=20 tests/golden_runs \ --basetemp=runs/ci-goldens --junitxml=runs/goldens-junit.xml From d7261b6e5b492013a2fff10f34bc99413a5e9303 Mon Sep 17 00:00:00 2001 From: abrichr Date: Sat, 24 Oct 2026 23:21:54 -0400 Subject: [PATCH 05/17] test(flow): commit the Linux golden baselines; budgets at main's sizes Baselines and the recorded MockMed triage bundle come from the flow-critical job of CI run 40123224669 (write mode, each scenario run twice and identical). Ruff skips the bundle's generated workflow.py, which is part of the bundle digest. Ratchet budgets reset to origin/main ecc162e12. Co-Authored-By: Claude Opus 5.5 --- packages/flow/docs/design/DECOMPOSITION.md | 4 +- packages/flow/pyproject.toml | 2 +- .../bundles/mockmed-triage/manifest.json | 40 + .../mockmed-triage/param_proposals.json | 19 + .../bundles/mockmed-triage/sections.json | 148 + .../templates/layout_fingerprint.json | 590 ++++ .../mockmed-triage/templates/step_000.png | Bin 0 -> 271 bytes .../templates/step_000_expect.png | Bin 0 -> 7175 bytes .../templates/step_001_expect.png | Bin 0 -> 4901 bytes .../mockmed-triage/templates/step_002.png | Bin 0 -> 271 bytes .../templates/step_002_expect.png | Bin 0 -> 10580 bytes .../templates/step_003_expect.png | Bin 0 -> 3685 bytes .../mockmed-triage/templates/step_004.png | Bin 0 -> 2399 bytes .../templates/step_004_expect.png | Bin 0 -> 42618 bytes .../mockmed-triage/templates/step_005.png | Bin 0 -> 2493 bytes .../templates/step_005_expect.png | Bin 0 -> 21089 bytes .../mockmed-triage/templates/step_006.png | Bin 0 -> 3067 bytes .../templates/step_006_expect.png | Bin 0 -> 5047 bytes .../mockmed-triage/templates/step_007.png | Bin 0 -> 3529 bytes .../templates/step_007_expect.png | Bin 0 -> 4947 bytes .../mockmed-triage/templates/step_008.png | Bin 0 -> 1160 bytes .../templates/step_008_expect.png | Bin 0 -> 5496 bytes .../mockmed-triage/templates/step_010.png | Bin 0 -> 3101 bytes .../templates/step_010_expect.png | Bin 0 -> 3604 bytes .../bundles/mockmed-triage/workflow.json | 1394 +++++++++ .../bundles/mockmed-triage/workflow.py | 79 + .../baselines/mockmed_data_growth.json | 741 +++++ .../baselines/mockmed_lookalike_row.json | 734 +++++ .../baselines/mockmed_missing_row.json | 730 +++++ .../golden_runs/baselines/mockmed_modal.json | 1261 ++++++++ .../golden_runs/baselines/mockmed_pass.json | 1228 ++++++++ .../baselines/mockmed_pass_structural.json | 1649 ++++++++++ .../golden_runs/baselines/mockmed_rename.json | 1740 +++++++++++ .../golden_runs/baselines/mockmed_sort.json | 733 +++++ .../golden_runs/baselines/mockmed_theme.json | 2721 +++++++++++++++++ 35 files changed, 13810 insertions(+), 3 deletions(-) create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_001_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_003_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_004.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_004_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_modal.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_pass.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_rename.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_sort.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_theme.json diff --git a/packages/flow/docs/design/DECOMPOSITION.md b/packages/flow/docs/design/DECOMPOSITION.md index b5e5f6d9ea..1d1323ca46 100644 --- a/packages/flow/docs/design/DECOMPOSITION.md +++ b/packages/flow/docs/design/DECOMPOSITION.md @@ -594,10 +594,10 @@ that: | File | Line budget | |---|---:| -| `packages/flow/openadapt_flow/runtime/replayer.py` | 18258 | +| `packages/flow/openadapt_flow/runtime/replayer.py` | 18300 | | `packages/flow/openadapt_flow/__main__.py` | 11970 | | `packages/flow/openadapt_flow/qualification.py` | 5775 | -| `packages/flow/openadapt_flow/ir.py` | 5765 | +| `packages/flow/openadapt_flow/ir.py` | 5798 | | `packages/desktop/openadapt_desktop/dispatch.py` | 5686 | | `packages/capture/openadapt_capture/recorder.py` | 4532 | | `packages/flow/openadapt_flow/interactive_recorder.py` | 4524 | diff --git a/packages/flow/pyproject.toml b/packages/flow/pyproject.toml index df4e352f43..d8cc48635c 100644 --- a/packages/flow/pyproject.toml +++ b/packages/flow/pyproject.toml @@ -451,7 +451,7 @@ line-length = 88 # Generated / non-package trees at the repo root are not part of the lint # surface. Anchored with a leading slash so the package's own # openadapt_flow/benchmark/ IS still linted (a bare "benchmark" would match it). -extend-exclude = ["/benchmark", "/docs", "/runs", "/dist"] +extend-exclude = ["/benchmark", "/docs", "/runs", "/dist", "tests/golden_runs/baselines"] [tool.ruff.lint] # Start pragmatic: pyflakes (real bugs), the safe pycodestyle subset, warnings, diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json new file mode 100644 index 0000000000..931d0ebbfd --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json @@ -0,0 +1,40 @@ +{ + "schema_version": 2, + "content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "file_hashes": { + "templates/layout_fingerprint.json": "1e07a218d3cbbe592419e702af84049e04c308ee3e1c1d78444a0637847355e5", + "templates/step_000.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", + "templates/step_000_expect.png": "29e54a82c2f7df3554d2487d9bad748fc0abd86191416d39343c1eb866c486d1", + "templates/step_001_expect.png": "e2e203b8bbc4bf0a31aebd56a1303077243a3ff602708bbe9eae46d45460ebdf", + "templates/step_002.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", + "templates/step_002_expect.png": "68a0aa31d3b7fba1139c05d729f49252174481dfca5a8693cb5b6440f8976fe6", + "templates/step_003_expect.png": "3068277f51d8dfbfd1ba50b31afee93e76dcacb67b11d4610b6dcdf681597eed", + "templates/step_004.png": "d0082e004cf2a2c03668ca1c6630001eda69bdcf169d05d58839dcbddbc56773", + "templates/step_004_expect.png": "230b56796f24b36637d77ba395e6031bf39cbfab898da61c1c41f23f1b57e396", + "templates/step_005.png": "e38e9760b48c63a08e6618b2624c6796620ce58b5f7d7a2ff63f678aa25bb3e2", + "templates/step_005_expect.png": "76696ff4ec85753e45b5378638fa7c19f4f7fddb1cf35ee99cf6baee11844803", + "templates/step_006.png": "97568daf732ecb6109d858dd09cdcf78b031830c819b6f4b6a50ae60a72ada10", + "templates/step_006_expect.png": "d0e310e05830227867e94a9b288e6265fa28c375558d58555e79bfb002095134", + "templates/step_007.png": "7f6817a19ffe49b31a05a70a23f3fcdb2a71b93b3f4ec6a7b997126b4e0ff16c", + "templates/step_007_expect.png": "ac9ee10ba2354bca0db66fbf3bf93ca80b62a650d3f19e8b71dcc6038a4d057f", + "templates/step_008.png": "b6b06e1ed6155ed74899d0a42bf23df672bf930bfb6f830ab69e6d89ca6fedd3", + "templates/step_008_expect.png": "d1f13cae697465c2ec07310adc38d7780f7d7c0146257679b7c559716b992a31", + "templates/step_010.png": "31193461982dc5b438be9e459f1ce17f2b5dca4109c206428c7d8135bf60643a", + "templates/step_010_expect.png": "5fcb6891641b02953b9baeaa75581a3a9fa1db6c7bd39d432f1d4d06d04c8856" + }, + "provenance": { + "compiler_version": "2.3.0", + "source_recording_sha256": null, + "compiler_config_sha256": "43f5f0d9a4d87c9637138dc24dcf8a163094ab400b760cee8c2567a0760be695", + "created_at": "2026-10-24T19:14:58.653368+00:00", + "policy_name": null, + "certified": false, + "certification_status": null, + "certified_at": null, + "expires_at": null, + "certification_invalidated_at": null, + "certification_invalidation_reason": null, + "governed_authorization_template": null + }, + "encrypted": false +} \ No newline at end of file diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json new file mode 100644 index 0000000000..7f3956125d --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json @@ -0,0 +1,19 @@ +{ + "note": "Flagged field-label parameter proposals -- NOT applied. Run the confirm pass (openadapt-flow compile, interactive or --accept-params/--params-from) to turn a proposal into a parameter; unconfirmed proposals remain demonstrated constants.", + "proposals": [ + { + "step_id": "step_001", + "name": "username", + "field_label": "Username", + "masked_example": "nu******mo", + "secret": false + }, + { + "step_id": "step_003", + "name": "password", + "field_label": "Password", + "masked_example": null, + "secret": true + } + ] +} \ No newline at end of file diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json new file mode 100644 index 0000000000..992256c6ac --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json @@ -0,0 +1,148 @@ +{ + "schema": "openadapt.flow.sections/v1", + "note": "Display metadata: named groups of steps for program maps. Execution and the outcome classifier ignore this file, and it is outside the content digest and the workflow contract hash.", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", + "sections": [ + { + "id": "fields-step_000", + "title": "Sign in to MockMed", + "title_source": "ui", + "kind": "fields", + "steps": [ + "step_000", + "step_001", + "step_002", + "step_003" + ], + "fields": [ + "username", + "password" + ], + "params": [] + }, + { + "id": "fields-step_004", + "title": "Triage", + "title_source": "ui", + "kind": "fields", + "steps": [ + "step_004", + "step_005", + "step_006", + "step_007", + "step_008", + "step_009" + ], + "fields": [ + "note" + ], + "params": [ + "note" + ] + }, + { + "id": "save-step_010", + "title": "Save Encounter", + "title_source": "ui", + "kind": "save", + "steps": [ + "step_010" + ], + "fields": [], + "params": [] + } + ], + "compiled": [ + { + "id": "fields-step_000", + "title": "Sign in to MockMed", + "title_source": "ui", + "kind": "fields", + "steps": [ + "step_000", + "step_001", + "step_002", + "step_003" + ], + "fields": [ + "username", + "password" + ], + "params": [] + }, + { + "id": "fields-step_004", + "title": "Triage", + "title_source": "ui", + "kind": "fields", + "steps": [ + "step_004", + "step_005", + "step_006", + "step_007", + "step_008", + "step_009" + ], + "fields": [ + "note" + ], + "params": [ + "note" + ] + }, + { + "id": "save-step_010", + "title": "Save Encounter", + "title_source": "ui", + "kind": "save", + "steps": [ + "step_010" + ], + "fields": [], + "params": [] + } + ], + "edits": [], + "context": { + "step_000": { + "container": "Sign in to MockMed", + "kind": "heading", + "header": false + }, + "step_002": { + "container": "Sign in to MockMed", + "kind": "heading", + "header": false + }, + "step_004": { + "container": "Sign in to MockMed", + "kind": "heading", + "header": false + }, + "step_005": { + "container": "Referral Tasks", + "kind": "heading", + "header": false + }, + "step_006": { + "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", + "kind": "landmark", + "header": false + }, + "step_007": { + "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", + "kind": "landmark", + "header": false + }, + "step_008": { + "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", + "kind": "landmark", + "header": false + }, + "step_010": { + "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", + "kind": "landmark", + "header": false + } + } +} diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json new file mode 100644 index 0000000000..93a705c24d --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json @@ -0,0 +1,590 @@ +{ + "scale_landmarks": { + "salt": "bf69b9b6dbf24361103dedfa0aed3511", + "steps": { + "step_000": [ + [ + "f624df4a00c1c2f9", + 71.0, + 25.0, + 98, + 24 + ], + [ + "8c25b77b5816e63d", + 234.5, + 26.5, + 201, + 21 + ], + [ + "c03ccf634d509872", + 138.0, + 89.5, + 228, + 27 + ], + [ + "071d98bd385845a4", + 85.5, + 166.0, + 79, + 22 + ], + [ + "5107f3d7db1a174b", + 85.0, + 234.5, + 74, + 17 + ], + [ + "6cd4ae6b152e18d6", + 120.0, + 324.0, + 58, + 24 + ] + ], + "step_002": [ + [ + "f624df4a00c1c2f9", + 71.0, + 25.0, + 98, + 24 + ], + [ + "8c25b77b5816e63d", + 234.5, + 26.5, + 201, + 21 + ], + [ + "c03ccf634d509872", + 137.0, + 89.5, + 228, + 27 + ], + [ + "071d98bd385845a4", + 85.5, + 166.5, + 79, + 23 + ], + [ + "a3466dba8f68ef72", + 100.5, + 195.0, + 91, + 20 + ], + [ + "5107f3d7db1a174b", + 85.0, + 234.5, + 74, + 17 + ], + [ + "6cd4ae6b152e18d6", + 120.0, + 324.0, + 58, + 24 + ] + ], + "step_004": [ + [ + "f624df4a00c1c2f9", + 71.0, + 25.0, + 98, + 24 + ], + [ + "8c25b77b5816e63d", + 234.5, + 26.5, + 201, + 21 + ], + [ + "c03ccf634d509872", + 137.5, + 89.5, + 229, + 27 + ], + [ + "071d98bd385845a4", + 85.5, + 166.0, + 79, + 22 + ], + [ + "a3466dba8f68ef72", + 100.5, + 195.0, + 91, + 20 + ], + [ + "5107f3d7db1a174b", + 85.0, + 235.0, + 76, + 20 + ], + [ + "6cd4ae6b152e18d6", + 120.0, + 324.0, + 58, + 24 + ] + ], + "step_005": [ + [ + "f624df4a00c1c2f9", + 71.0, + 25.0, + 100, + 24 + ], + [ + "8c25b77b5816e63d", + 235.0, + 26.5, + 202, + 21 + ], + [ + "233c0fe0e7039734", + 106.5, + 89.0, + 167, + 26 + ], + [ + "e20511753ce4bbca", + 63.0, + 139.5, + 58, + 21 + ], + [ + "448a03d120a534b6", + 304.0, + 139.0, + 60, + 20 + ], + [ + "376557bb90e0b2e5", + 608.0, + 139.0, + 60, + 24 + ], + [ + "92ba035b7b6817e2", + 754.5, + 138.5, + 55, + 23 + ], + [ + "4c6c8bca888dd658", + 81.0, + 188.0, + 94, + 20 + ], + [ + "133a2ca9c4b67c2c", + 336.0, + 188.0, + 126, + 22 + ], + [ + "4a71ffe05e0793da", + 598.5, + 188.0, + 39, + 22 + ], + [ + "174a1dbc27ee9670", + 83.5, + 244.5, + 99, + 23 + ], + [ + "c44c28839c991a86", + 345.0, + 244.5, + 142, + 25 + ], + [ + "d9db5e44cfde450e", + 609.0, + 243.5, + 62, + 23 + ], + [ + "dc8cadf44f227f08", + 88.5, + 302.0, + 107, + 20 + ], + [ + "f827e6f8bddc88b8", + 346.5, + 302.0, + 143, + 20 + ] + ], + "step_006": [ + [ + "f624df4a00c1c2f9", + 71.0, + 25.0, + 98, + 24 + ], + [ + "8c25b77b5816e63d", + 235.0, + 27.5, + 198, + 17 + ], + [ + "0eb05c839ea44349", + 209.5, + 98.0, + 347, + 20 + ], + [ + "8a4792eb151cde87", + 114.5, + 159.0, + 111, + 20 + ], + [ + "af97a9f8cc43b371", + 80.0, + 211.0, + 112, + 20 + ], + [ + "7ea51644029e377b", + 90.0, + 241.5, + 138, + 23 + ] + ], + "step_007": [ + [ + "f624df4a00c1c2f9", + 71.0, + 25.0, + 98, + 24 + ], + [ + "8c25b77b5816e63d", + 234.5, + 26.5, + 197, + 17 + ], + [ + "0eb05c839ea44349", + 209.5, + 98.0, + 347, + 20 + ], + [ + "8a4792eb151cde87", + 112.0, + 143.0, + 180, + 26 + ], + [ + "cb1b7d20380a098f", + 80.5, + 182.5, + 119, + 23 + ], + [ + "230039e031a50b3b", + 85.5, + 214.0, + 53, + 24 + ], + [ + "cee1c2fc72baee14", + 206.5, + 213.5, + 61, + 21 + ], + [ + "2eb74562b59f685a", + 41.0, + 270.0, + 40, + 18 + ], + [ + "3ea76c1c6ecff389", + 134.0, + 456.5, + 118, + 23 + ] + ], + "step_008": [ + [ + "f624df4a00c1c2f9", + 71.0, + 25.0, + 98, + 24 + ], + [ + "8c25b77b5816e63d", + 235.0, + 26.5, + 198, + 17 + ], + [ + "0eb05c839ea44349", + 209.5, + 98.0, + 347, + 20 + ], + [ + "8a4792eb151cde87", + 111.0, + 142.0, + 178, + 26 + ], + [ + "cb1b7d20380a098f", + 80.5, + 183.0, + 119, + 22 + ], + [ + "230039e031a50b3b", + 85.5, + 214.0, + 53, + 24 + ], + [ + "cee1c2fc72baee14", + 206.5, + 213.5, + 61, + 21 + ], + [ + "2eb74562b59f685a", + 41.0, + 270.0, + 40, + 18 + ], + [ + "3ea76c1c6ecff389", + 134.0, + 456.5, + 118, + 23 + ] + ], + "step_010": [ + [ + "f624df4a00c1c2f9", + 71.0, + 25.0, + 98, + 24 + ], + [ + "8c25b77b5816e63d", + 234.5, + 26.5, + 197, + 17 + ], + [ + "0eb05c839ea44349", + 209.5, + 98.0, + 347, + 20 + ], + [ + "8a4792eb151cde87", + 111.0, + 143.0, + 178, + 26 + ], + [ + "cb1b7d20380a098f", + 80.5, + 183.0, + 119, + 22 + ], + [ + "230039e031a50b3b", + 85.5, + 214.0, + 53, + 24 + ], + [ + "cee1c2fc72baee14", + 206.5, + 213.5, + 61, + 21 + ], + [ + "2eb74562b59f685a", + 40.5, + 269.5, + 41, + 21 + ], + [ + "3ea76c1c6ecff389", + 134.0, + 456.5, + 118, + 23 + ] + ] + } + }, + "schema": "openadapt.layout-fingerprints/v1", + "steps": { + "step_000": { + "char_width": 9.770833333333332, + "landmarks": {}, + "lines": 6, + "profile_sha256": null, + "text_height": 23.0, + "viewport": [ + 1280, + 800 + ] + }, + "step_002": { + "char_width": 9.666666666666666, + "landmarks": {}, + "lines": 7, + "profile_sha256": null, + "text_height": 23, + "viewport": [ + 1280, + 800 + ] + }, + "step_004": { + "char_width": 9.666666666666666, + "landmarks": {}, + "lines": 7, + "profile_sha256": null, + "text_height": 22, + "viewport": [ + 1280, + 800 + ] + }, + "step_005": { + "char_width": 9.727272727272727, + "landmarks": {}, + "lines": 19, + "profile_sha256": null, + "text_height": 22, + "viewport": [ + 1280, + 800 + ] + }, + "step_006": { + "char_width": 10.225, + "landmarks": {}, + "lines": 6, + "profile_sha256": null, + "text_height": 20.0, + "viewport": [ + 1280, + 800 + ] + }, + "step_007": { + "char_width": 9.153846153846153, + "landmarks": {}, + "lines": 9, + "profile_sha256": null, + "text_height": 23, + "viewport": [ + 1280, + 800 + ] + }, + "step_008": { + "char_width": 9.153846153846153, + "landmarks": {}, + "lines": 9, + "profile_sha256": null, + "text_height": 22, + "viewport": [ + 1280, + 800 + ] + }, + "step_010": { + "char_width": 9.115384615384615, + "landmarks": {}, + "lines": 10, + "profile_sha256": null, + "text_height": 21.5, + "viewport": [ + 1280, + 800 + ] + } + } +} diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000.png new file mode 100644 index 0000000000000000000000000000000000000000..fb7b324bfdac2e246cfa97953ca2e594f21a31dd GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3xL>xg9%6qy?p%xNL}-EaSW+oe0z{luz^8ZL~$r4Tlj0`egf`5 bGWu`f*}awPE9}LAK4kE8^>bP0l+XkKDh_-5 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..37f0bfd628af9a5b834851df73fc78fac584e7b9 GIT binary patch literal 7175 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 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002.png new file mode 100644 index 0000000000000000000000000000000000000000..fb7b324bfdac2e246cfa97953ca2e594f21a31dd GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3xL>xg9%6qy?p%xNL}-EaSW+oe0z{luz^8ZL~$r4Tlj0`egf`5 bGWu`f*}awPE9}LAK4kE8^>bP0l+XkKDh_-5 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..da0b19b6832b21d8f5dc55983a727856d61b1814 GIT binary patch literal 10580 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 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_003_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_003_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..8acfaf171c4fba5a981676d87b1f416ace274253 GIT binary patch literal 3685 zcmdT{XH*kP7LGJ2(v)K820=h1h!PMGq=TW?015~KQiD&BUiB$m1wj-8C{mOjnh+A2 z5P}q`0cj#lN)jM+65P1&x$m8`Z+Cy~p0ht@=A1io?tC+I@Aut_H#5;^XBA)t008WU z209kBF^AT4ndxZ#_(a|z0Kg$@sH15We1y;fH?n*U>RoK(;?`PR>Y4c{97)lzIjp?Q+nha+xFRmucP>&Cgbn!(bST+BvDWQ zt&1;7%MlyhvkyTomZ=?PH@XeXoc$_fE@O$t-RcO1LH7uOC}i8l-u~Oe4rJA3`ayCR zY#7rwhu-1{@~JhJf5!t`ItkMHriQ*0Uf(8a>9bNaDv3>PzWMM}F$L!`Q0eEez3Pd1 zb0?IL(xzYIf03fRkX|gu%zp6N!=Bx)FsIXklSjztiRo6I(nJ_ADA&4ZPwJCXJO5|2 z;N7Pp!+yuq&||lRnTzC@^|mQ3uMajF%LEH}z9Yap{M0)lu&mqbiwl#hpT?;BqEsM1 z{MxQ_wSg^R?cU_$5^8jWy29Ls_Fkpo`;1rNE(`3jg5K%e+=kMk`Rj5}n8G=nh-+A$aTS?b+)Ng*VHoCq_kE?~^hCt@ z+Y1Y&F^j7O5jms;k24PJIfzIkByVqV;pua)$*4N?sMW-<%@dHm^WCnhPCb2HWM+f) z%Se~FNl&Cx*J!6p?}a5-@uydx7g7xx_B<`zcD5#~+`@5JUP7kkGY2kiA(9%>(yWR5 z6(duRC!$WH4}mU$wPjb+kFycWz`Of1?Z)$$g^yCV8a4gJCCiK3o`R0j&Eh%o@fwzI ztVYl62Se5-?7MA~_gt!cW6krMuVVic(pldSk~0<^dLtT<#p~Cgq~^pBN>0t^L?v0& zymleSQdDTX1hOgLYY2#{S$u{`Z5~Hl+!ZO__oK4XcpB6IG%HPTt|A7(^ zvrc|E;E*kCA+yRCp(c2;>F)jVD1o@1S{A)@y0gOCI?RYdrHA04UDpI(Vczk%UH%wp zZ_m)-$MCik`#i{}=_$x=_pJUzA@8&>rF=wOF{Sxo$eE_04qW5Ckvr$KF;7`hZup5k zZJ-7wX?$;Zx~fiwKJ9Yy7UIMTSystt+^w&)eaYJOh}eEr0Ve8ADOrVWZy?+5N?C(f zQ!0=>7%~0rs_!83oa%+4{$O<}Wk)gEZJVWaq-2KN`;zh-PAK0szKD)_{l^l7ZUc*b z>`_q;(>`$v56Y*;Io=Doo1#YEJra_%O{OH|p}z8F3Z5r3wFv*lJQX3jei_zt~DrZJ-CaY-1=QgkI=H8L52zlo2eL7Ks zE!!OXB?+Wknvy0iCBHSg^wK#^ahX9PHaxBO(A+8D1w_J&J%gb@L=|zu2dRh1)iHCv z8~*7M-)JMWN-?!Pm9ekL)nD()Ya1+%n18^F|+;&sMz$Is;D7;M1gU< z{k_~jZL`i#D=tpWDsx0jCG3im+Pt(4$JqeLHvGFldF7?ai;C&J1BQW|AkWlQOD(6X70HBfY>8noCGMX9f`vQ?a8 ztBnIE#uJRk#0;BMAF|%ybz~7p^03YM@&c=6gS5prpwmw_y|K=dv}(1FZly zr*CU6V@y*cZoyWW)~YdX$e}KxXze4u^+hJWO4)+ZyKY#58r8JC!l=HgmNXEi6lhm- z0w(#RG~=3V#0g$kV0N$LPu?O4nW=yRB;aeekTTC9#Bn+MF`J z{u3csr*7?64seF=7vEU!kJm(xoo5x?pz$boYk$Gd^1gK;Jm^%M zvDyeeU*vmeR6jL@p%kwaWS>D!@N?8r(M%9z^*ftmbO46+V$dd4yGHGm8QXgYAzv7XVef7rxDQxG8bHbBSx zL(~`1suv%7RnfQY2Z62&e0#CjG5^+yrPTZd+Y#P3x^(6GvTj(12lS#MC6_GU#oM3A zY`pWXVW0TM!qUvv)xgHNW!6Xe1~C9|E+pGBi{)?3Hi9VtCRyjydW9G&#AjxcKiPK~tpzQj?OR tB5kpAXsAG{eDi-)vcHtKe{0-o+Eq(L^u6UWp?x0#hPoy?Wm?X$e*XQh}P9qe7X%e5?qnIl=m>~&iW83!q( z77@8dcFO&hg*DQQ<~G(YuJ1bMJnuRB^E~H$p7)R6_xI25`98nj=l1<2pLeuVRM1e6 zl9Ez{+gm$J_5#T|`Hi%s?w;j}q@;H0z^zZYVE-}S>f{d)YVKHCWTo%XSL-Ae>oq>e zWw+aTL?~77SN6F0y}@y16oSB%0U=*|llwF>AW7=Z%Y9Dw2X>U6Ha>v>-!)B`R_f<# zCxqNrR?%9~ctR@qj6(WV;?g`VP(7|@H6K_W9fVF1r$h$*Di)fWH1QDqm&=lUcFb^O ziV19;i}Uf>3ye%k6hgp{0Axn5o7A=E*@kcHECy*}!;a82(fhCuuMe`)OksMKTcqCa+Sv ziO(99)euF7@gx-$(P0}^Yjt4lwPQ@(2NPb_vQT)xtP_F$=m5e*;izc8O8hzJAwd(Q6i!H&P7VTuZF{7+lxAID%`;omdIRYFr&c?I=Q*Gfke`aolo zuS~iC3mt}7LM<>wgiwQBDQU%1=^2z`<|jP5x8KWxq+PEnzGD@iJ^VUXFf>nOo^4Gl zZKHose(VA6=^c`${d=`5KaraaBb)FZ$$9ptV<67pOdC3(+>9Ku$7Shk6+q%3y9cMLtW5ftk^Ubks1fMh zxESB66*H&cz@T8a<~*Y+pSVzm=nXgyA0EK}wEWMTs)lh}Hmo=AJnFo?UYtB;o{?tf z;QMrjF?oLa4EKkv)ggMyBCfi=36`iSf`+#IlIlw`0_yL-RabSyVJm zfUAoV&Be=%gleax5e*bI4XaTQ1p`0d&dv8(SxS!^A}(JpQ}{`{ezzF9)qa;^Y(hKx z2T5~bx<-rvvq*O_bHgWy_xW(i8PDtfSo}aoTKG1O2ms>)cn4e&EJxS|cc9BOP58 zb;-ehGQ}+`N-J4wIu9H&#`wUUy#o#|w`yC-JQ0!SHEVlH?n{2bZ|fw1BixXPIcDp| z*%6Ms&YaJ>-4k9rd=}%+9-dq-<^67YZ+Vt!%o9!zEDIsrcjaVQZ*t}>M>@!(hw|=e zvx#VI87`a@!vSBb)S`#O zHN)$!oVg^PUS@O4JB?e^W}q5e#M~;s$X&+fNFT7bG^dpAcPpfz6s>{3vf{u?>C`bN zK`Wu^f3nZthR%2kXK`*de{^{0*GPOu{2U0%W;H~|6%zhyoO-8k+kuE?T*2dR(pun1 zh)dBSc`8>jYm0=N=N7cvRdf5n7j7aS7LM{W;59%`U3s$rhF zfI?~q^4+dSy3dXC!uSF;7yy-DUbtzxEoi4+XfqgN!UXOLPmG18DE-8`j4iN!q>DqKRh;(;%ZTfCD$Mg5( zJ?FmP`0o9_`;Orln~m(X)^Dz7KF>4fgb!~dh0%~7Ap-yaG?CYW(f|NV2LJ%Yg$ND) z&a2}sa{zz@AR_oe))8u}5luDneJ%Trg?)KTGQ|?V`Iba!a3-9Jml<8}1DaO3jPy5x z+^*TLg_z17y?tTwd9hWvLH_yU@(9x47_0^)>pX3@apKIZ?;{(`wsbz!W3L06@~4ud zUMG-`kDq*WQ<}_A=k^o+SigzMp=J*9Ta`9*c2zII@nkf$QR`$u#^76BJO5H;RiQPx zFUeqDY4AeCtk0Hz?z||^QB8*dAfnrO-88menRc^K5S_41>fAMg} z0T6*V{@%W2hP+9_Rpv#bhav`}`9YFi;HS30=ZKGe?!UYaX;`;zX6K1D9$Gw1sKpg* z2zn+kzd+><0A=Pq=}qGUG$9P#+g5TdL}cge!!dj)ZwFmzkez0)6G!Yh1HV1BC4>O5 z64wg87J>I%O?T_YJT|BWT;kNrN8&$jG$7m2Zb`<6Z!TQCPnmhi6<~zViDKO z2KsuH>~Zy8<pBe|2FG6j2j#!I zB==~gb5HIn7XJkQl+eVi#QxNIAMG>?_cTlDA(UFX?S3@{0yqJT+_Yo?@S`4F1~1O* za&Z~mUv#D=t-FH~H$6Ds)LnGMqjT}EB&)k7KPmoP$H)c%%!Xws*?qy+AV&)M5E>jD z65#5OF>mwBg68+3)u*0Wxi916XTi-`I44%{c{{OPTCC=9T-c2n`N?dAl-$E%f7^EyFsjO z`wUH!XMs+&qgo`)?9rP5D~EGk{>$LiuF1lc_3qj2HukgjwWBJL$je{S3hFoEfkJF% z8;#~kzdsKzrJ{HKtw|pN-e2c{8fB$Zu(H#pid1i3j9AlCSLh^-u*l)VUcNJasZ9w! zA)tlHm-U& zD*os>l+n=j1v`ma+&SV%gQs!qZ(%>y>#2Ooykv%-O4Xi9HaTa6 zhZklZhMX?o>y%Jb*K?hJj0EAPj#-Sq(1oGdVwzVqS6(85O1p_e7W()@#M(-Ds=P2`ya&6CgczD`l$0CuoJr)XR)dI47WO1eR^ffOd}9sc+AKXK)lJcoJtklI7gn%JbApz)A4HmPghomeA)1#9WewJkq{4#O<|!opnpS#*6fyl1xvKfXZN zHl+miCMkVRY;Lo9QzWP*^I#^u{iH^=}H(8z{Y7B(sB@5BQvFw$n{O+bAF zbKFAZQdcdI<6DRH7xlYdI1N`~Xma??mp{nK^GR`O9V0d1KcpE(H>1;al?|%_z7>@( zCL67Q`R`F)y(oGLGx@G%a~|$q=M47`c zj*utZfFS`guqkjG00m(k&+~Wdt7GED zzHN=UTrvLMhQ$7`E&$!Y(>QAn>c&`bU@{E580K=J^*=|`E?4B`T_UFLr`{;{8Vjrc z1feez>+;`ADTB!nt&kiT=zf@kz* zz){nqncJh%@!C37Va?;ldni>s=19Cn5Cg2ZzgVxo6f7E^kqQku#>?|*Nd%uoN_hSU z`$vZ~Is$^zXmCdB7u>agwpZqK-HGRK?f*WQbuFodtfnjkoZT>(;{xb@t@Oh@SdR}~ zOBvjJuL;3kJuL&yFLOqrm~I)hdMW&vVC1dfyKLP%+FqK=ENpkmQ>JivOz~6or@$u3K zBAC=63n4zP5Sp{CdU5xriuM0Qb`Dznb``MtoNB@$$rt%#ow#-4TNW3CPwRke+UnoW2TQ;`uw`CK~L>|HIc3&DG zE8S=2x!Zya3v%|C=IkLA@1H87lHZy^hEgTY+wI=IyIV=u@oozt3dq@grpyT}(BFQ= z6}`Ps4Z{-a+wIb!?^f#AyW1j2{4P9I(;PEIpEQ}GZn0B0puemrg#1zn?rx>9`MWLf z;_t#^U1J60{l6{H3pZ#|{o%(OKpVvVXX`r9FZ>Jdko4pJ!9s4MTg$ae(8MBf9{2nb z1&Bjawo!a_}H{rXeWfIt>sas&bQII+)t;`v)JGI3aR-wVzh@vFz^TI%{5 z=kwVK1B)EQ-4_^qjJ6&3%)ngsEA9<)-7+ZL!L(^$?JV3nyxm^2cEoczdUCZ(kYpBu zp@kZ2HXNf;1Q&o72&K*I%o+oJ+002Im-kVeLO6fqyR3_?aPQURcQT)}Gr=EP68i%z zTR&Dytwq=*Cf!HqqV)Hj;Zt!*#ewmWvBmb4lDfa3vKL$>k|@b27Tgy7f^>?@z$RSC z<^G`tt2ru`cUa*fK2XcLDJp z;8)yX@F}TD&q8MxcPt(VV~uVM+p`_95T`f4r>0QiRv-?0fCkBpIGX}hIj2(_5E63^JZ_bc z)EaxF(@9!YaaC#MaCNatn=HBSGvNPvgf}lJh~v{o(&4IC$qx7C<0;(4 zN#=l#rBiR5a#}}LADq9J3>?XmNTJ8#nwiZ}_eesQ7|ue(&pBZ$<%)lwUS<;8e^e1K z&FXj0RS2|Kov>}AM|%H&9FoZ1d*xdLhQ?+KMtIS!gUnM)U!&+p^rKkPXc5r#eDUeweS6$fHI93yj652`bA$!HovN z(d~&YEs;7AL-K-B5uRa#5O!&u1JZFnOHfX9R2I^+Dn<3oT0NqvKJsP*3CGIj=@_%# zejaF76yiLDmsb5mKzm>*S->$aRN6dugH+84-A+ANxiQg zZ8s8)NBU;wWn;P$L-Gh@4r zc7HW4#)aW2hskC2&7T>-7HS6axfSp95?O(omcu!;@_1({QxeotutwB0s?$FWu3*3K zOW=2rHx+-g8Tc!e)!>(uCQ8~}(5x~9#gvUEx=+rdshLmJ367}WG8Ix0Eu-bjuW|e~ zb<-&Or9oY>S@y)V4AVBiVJcL2S}tnqoy#~9B*Zgt8h}OfZ&9{k(gSv$!`p>P^^D3R z>K5l_@7ZmutS%yul9wk|Ps@>`4;2Kv`?gtuLu9D8XV8r}tfY4`iDZAuM*cX$s?Ou< zLa)5mmcGsjfk&ND?n>+8v?uK|QrW2?*UWVErmxt35l@^9GUU}ppo;2yG>E8e*izTm zyctb{({$g4A^HTtLy{VP)oeU%@cTr|5HodPx?W}D{c^-l51ATGjJQS@qbYF%(ra?lBd*=l+8jF^tWaaoY^Qb&VL|NRL8r}IWJ<5M>M5y3RG zS>v)gIi6KL8TZd$t6rz`j)4=xP!;dV!4ZK{VITMVJ@H8Q^3w)qiFr;z{RCtk==t@r z3gvVQv~N4iJ*PY0^9pt!P!Dw-2YUNnUZ}8chB{n;nLt+@$36~BZy^n5g^&J3>h74m z1+6b7M3R!^7W>5bV>X(#nR^7JEE2v<@AhoBRPqNa;Ef#cRstn!$H(3wVI1m2MeHmZ zb*jvsN_NhuaI`CBNzhxM1<_OW$Mpe1Qo1D{lO4u_uOv@lHTkehe-)R-fQi(WxL3J+ zSyp3CRp3<)=;JNqoV<#7?222)iv@DC%g*>?id;-eQU3ySdk5QDC)-a8cvc_yWhSU6 zZ{`o@baTz|=YAwLpn&;hvs;Ga#}^*SJ?wMRE3pZRFTusA4%Mfdw9a9$EJ!1jbA6Lb zzv+3C=M|6?j|$jr70s{C6JX<>jl+Kjp{ykI!rXB_1&Rav`uOP5?L1xkIwtm)W5qHT zu4*m=n2UYOk>nuvJJ1n2a&59x;M6mu$h`^2nyFAoRGoRmG5V&6UL4xd6k)^!x!;Mh zhvu1ST$dx)JyR;aZ&`-Ac-YZXhX>tt|0yU7)%(E2q? zC*yfZ26XO2krW0+DMn$BCXyLgh>Fp;*At(^iXvP3fyX zT1xJ1@(0$Qy=}TDlhZbU!EqzE*v80&c*gY`LIYJJm5k~Y2B-8O&U0u)B*_nX7h<*7 znRdC4o!QG(?XQiW@G@BpNo)J`lN$j?V@1zgT$KC@GLf1|@0tzy9R+(AeFTc*s+fb38%64omc-3JhB z|EpoMxDQWmHd=^`rJna4jG0T~?y*`{W%!1l3~0NvXvC1QbBhgI;=w8iX0LR2m?E|U zIZIbz34uK$`_~WoLCpk4gX!+Q=`ApzgO$Kei<4OW&H>%}&6G)hCAj6yIB%nboRF{B zZ4sYIFzT`(g#c=wOA&>{VSsOZvPDm@CJ*6-yvcF?!r5dne)H8YAtFmTET-cBMyxTv zo+l+mZ~jo|!B%f-XTyI?FheZsMnrkC13Vqmwkn?p^vB(8g5I{-6N$Ji_Dl|xh>}Ma zUZpjt8=WsXXfwLYqSTc`jvGzl9U z?+FyBO|>@@Yx)|)2!BNq^MrM4>^xI~plV!^LwHK{^B~a{lDhG;0#r<=yDYy=yc=E3#4b4eaO<2eJI>LXX->JAu|kS3Wz1(=!<=lHGG8F9HVcTdA4Zt@&@Uh zo6EOS1hZ>&1`!ReXsZs-!nq8i6OYm_khPXV%bcelTI*mq%XJ#XvAAGQnM=ep6_<1vZ$ zQX{%lZ~}`-@vX^|Hy+j_EFM2=n?i&K8?p{(yBSU&gM_2d&d^E%)yu%o)w* zf(a8_va_HA-CR^A)~-W;72k#o7j^Frp}Hl9!BrTBJ)#q~U1z_zQb6C(tAr!(8P0gT z$a@>8+du67MF8Yn9|<1HD}1H4a5e%v&V_I+%u3 zI>iE)5`;7{wDV}u54WXR=3WxJEyO2yRn$y>+rHoJu&Lr39-rA1_gqS>YUQkU z`=y?;ulqji-ZZbe*2f?W=$UR|n=%ziCve`M9eiJr*Z{K3ARQjHp~*aXema<^ry_X_ z*T*XRIRO19Jj~&jM6e}W-)fgc+*9bs>44kTLO`RFioM~pGPYZzxL}A^*XU9t4VI{| zUfMp_svo}#(8sU)ny#}@b5|?CsVXntrwzp6I#s zj`wcjnM6Js#7p*TaAdee{%AQg?4&DomnUstb?L~&_;5<$=Jp+=iJ?x$N*OZzNRHog z)(5i-`P}3DJ@jPki>0a7!z@OUC5u1fElU9hodWxz59Z*K8fal2c9itelz3N2a|u{ggtFR~MB53ewr(ZP&WfVY0D-(iO($N`V-ZAm`k~!wDz{X2c!53tB;@Q=UPf;zQ8edGVAUm%Xd@1 z@dqYn&yfB?{Y>vX4;K=-k6l98PhYGNKfsI3Q+mYo7FyWmuh=YL-=1CW!PXa-`u5Em z%N#A2CP56uGfYTUzHs~vTbLh=-2;B1<5_&b5A3US+Yt=^^SxZuW~!4V+yKyI3c6qP zvQW7<5^80>*{}GNDXeMaTI@7SEDVfyvzy0pi$FJYvyb9;ZAgN<15iy3R7GO3CaW~$ zzY!+X26laNGp=P+3D(*K#<#F9g`n;(^YAwf6Ibt3?c2%{+(5YXJAj`&`fV5DY{gkX zX?lGmh3`2o2f6*a^|osU?9cAXtMNAmy^(|K-UBn%>+*E;gR{wFuxEm@I89UnYZn(x zx>y%WCJTrU(%jnb-_JUTCzg&7!liFp1;);PH!4p){e^t3)p?W)X5D~Q?I;cW zw&u?I#@}Hd4~(iRsY=`BOjDt%<@Bf8^O*gp2PvSyKH_xi8C#0Q?jiKTK>LdE2!&KE zQe$eDXrJ*GifAq)?Y)OhgTE1>AfZ3hgMVlzYd^8NL;uUzM@KZ#n6AIHNdHl@oy;5D zO*!{lDG6@x1DARaqE`E(=3PSmd7B&;gNGMkBp0RM=`pHuDJMTK^Zi+u|88%Gd;R}& zjsSBv$!eDSd5R-LwG5uMFshhRXAt;=%{Q7BWk*?ug?B<;?_1Zz)0O``$H|iJ0#92s z%g1CzIl&_$?{V$h1;`@rUYG1yR7`(vzDZ_8d568dTl98FRMMIWUO0Wn>fyV^;ffC>ag2eA$!zO!8i+q2c=0r>11J7LU76T88dLAZ%7r=|Z zdwpDyIIfNI^E~JF5rdHL76V^#932~Y0cPfS$SZhORMPtJ=ZVhkBjREIvY4*pU5s>f zneSpXWv(Ac_w!5#95?WY>u%AP9eZ~%>gdqDi&fQh&qI~}Lju1~Xz51Z+!*?(Z=&Gl zGz)Z%cM-|0elvAGyB5N^Irrmq|wr?z-Mdrzpo=MPo#vkVxkWMY zr6FqF?DYZVDWS&>pBfu_%jmzk3RDWmx5tFVog@ue({$UcA4ux{4QO>38v}E8!zAFL z__ocB3PoW5Wh9W)W!>JJG9&I8If%JPkop(?n|#C--}|(|tsD8mQ>sQ~!UXe$>%U2$ zc1S4{*r9{M8<1*W zQ9Am>3zYD$FbT_$QzyWNS9j!nL3HnR(neMSXwiz_FTG#Kd~@=K?PjK|Ufc1av?imL z0^@%T4|^DCOCi|xNnw~r79-_#k;GN>H~R=ZAns3D*GqN8*H-nN%1865K-{{&x%m#y z&32iE^2gn!tJzjRXcU*6r@mhUc+|5fH*7+*?=9uTH8TL*HJm} zJCX!TPR=OL0>VoOMYZQ2Dr!i{D$JA|Th60W)wLc+(kxo@;2WP@Y7_V~KzJ#n@kd+LxAI6Fb9OMDC-mmcTe9PE>~E@=F6{~9$RyKCqBQIzVJ!7!eC z22~gK3~z%P-&kqf%&}uz$g;VPT{7)rFpDn3gtkx=sC=rH@kz73aul6n(~UpjVZHZ* zM7^sF73*&74~avlfQ zu9XeoTFt9HDk+n2t~4Vdx#I-k%jfR_n}j}fux2FZg_NZj`-?{9nWtZ4=NM_X0D=chynbS7CE#m=alH@ zH~7~_St!Kn-5w>U0tkBoZ<_+<%GRc>mfJtbv<48T$J)r&J7t`w^E=J6{0+osqth3s zd`%Q2>+*6ByC*7KK4_!*3Ed!YW2MsUC>V{FR%t}g1jgT&=PwPB&nl+24Z zPEuh64O>w4S!mOm;aLL0wRHW(x0ujto}Kxc;QFXfXU2W|?){)5lT{Y1Le=4|6$XK* zue2OAup{L&#fz8kD;LLo9r~}dG|u~Ib~)#0{wAU~5e17>Rw_LB;x(~P+diJwva3_^ z?y1}0hkAV*x8W>E`d0q9yfS=SCpU9L~b7!O4xpx<;*RN-l6o#?E=6DJJ6@whm zVEyfrn<-to+2DR;+@ffMNGWKk$6o9%`|3>9VRBs5OR{^LaAd8afp*1ZNz_fSC=du5dB~(GK5XpEFvtp#$ zve`Qyp+`+kq413N<9OJasxF|eONTY%OE44)QLVJbE&r}7%nMd}u*UNNz?fteIILuw|i9P6TdS7P166I38 zGDB6|TZ=xQC_oTBDJU|?{mt^gS>K6I3e<^whII>s_@9(PmnfSl(n0UC%3dcAJWJ1U z?j>_4X@OW}SA@|=%nKvRksIRKq8N3S+xbV7wwF28qp3Bg8=D_Cx?IYM=#w5FtMZ<8 z#Yni!ZemKDI~|mu5V{QE6OE}=%wzQ5CeT&AqSfiyhJZmeFBE!@+F{cQIlAbJ>)7Ar zlO|DRjeh*mOEZ^q7b1o_$%P75H74&((TS_sh&7VMB;vYL;%)r?t46OXB^X{Tjg1VE!3%Pte&vBiah9nktr7^&N<#B1u+x!AD6H8SE(qEjK$ zBRy^gIgK+K*QLMK@I{Spc3`dvH1IY$#e8+6f@d{8vId-z8+wxZELu-DHOib(jyHEN zX&f_Fan)(dmzNt;;EJH0;Tx^nCZB-X&Z3TslsYZe!Y|7k`R8U4*Xvjfarx{n>m>T<++M6Rw7Xv4W+v9~v_d0o0*-m#hDHYoC zFM7v(rVDHLK#JF4lKH#~@z<`MJ80D5dN;*UYVJyzqbb_Tfe-nMHggW*dtHh@?Y6-U zAxkig5YVewI^66>Rho4$Z##)PGGB0-HCM_xnJi=>@*6qo$Xs`Fmq0kf6BTTPz=eqp z<1bg9BSvg78FdgqW+ZI2Q3?S6UXyZW$fP~%)){6q{BSbS<|fsKbf;glp3Uygjix~t zb-Lls3Jzx0h1ykNfP%Vnclx-FxZ9Y`UvD{Qu_eJN^_gHN^Od8N>S!WieI%3&!4uA6{QS~_Z#82<#(xI@xKCz zG~*{8NX^9S-KxXNd5sYg-e@ZOw)&@r+uKlI51rUsI1HVcwkVh?&p$X{tjT2|KCV$t zEPgtT`Bk%d<@jwtk$cE_)T{LvPdI$G!cgfT!oU^N=Cg28`Z8&W^jd7Gf&S()UE*k#IQAZk>e$e&|zxywy&_D{PU9}C(o z^QxfZVvUd0Z3T&bnNN=}ET)U{3E zN%V~GaGM4%E!3IDoy2+n;ZPq-YXNRW`9@e$8CmZ-Trw26hY*xOafs5ibQ12nc|W6|JT8r~FyC~#dv z6QBLH2?fR45=woTTo~894SU;SrTz4xgF*u?ASJhq=Ajvm9ua-u!{l+y)2*7&m|@f4 zD8N_t<(B-~B-yKT8=YA(v5s|7HgNLcdPCJx+HD+#Vr}MNc?*K5YnC0Y1`8$}=uc7f zw1#B)L(iR#WLUf|EhF1!T3y;gYGhy=hLlfKn+hp+_>wNZtS)s`1{LTIU1OgHzsp(- zma{7KXCtOpbHo|AX%zdAD=GZw)FRF?+t6xi#tM893_vm1xm)+8%RMq2opU9b* zP@M|+FSC@pzawEUir$MA427G6n3FF#8*H#;*yMSP{B`Z1-1p?Tw}(N>l@y8@;qA8& z{fmc>sHIx{5OtbaUoJ(A4QOyPy7}g#rgL~wdm;-sci~^hnRbhXg(*l?#f!CZ3(hv~ ztQ@&)73=3wm#d}tVkS0KvdgC|U&1O4-7ph{RdHf1eZ1LE^$HZRYHZf^Ng@UNeJ(h} z4abpx{-keie$5@`9qDl!r1})YFWqjgwD6U5!(v#uyAxX9qz*?iX(yJHtSY&fUc)*T z{PfNT|Id#o_G-f?6Aw}@z&wVK(;|1}NZ5W$*Q{#$Y~qo}hQv>avP$J1S-eI*pU|v_ zvhxrs1*MQOM`K57N~2;0qC%U>>Gni@iI3qdA)eioar>;5BkTqn(r96dyQ|Eaah_m7 z2WRW-pOE*e&?D3dIa2Dpt~Z%_Kk~V@&q@jo&)~A^%hF=CiASp^@y$iTcNeUi7CLUg zwDGt%e-pc^q3I~W&0+s-YHSW~ZJq6f0${PSB=c1F(ywZ`)Ym~M|5$ZeyC8w57$5w7`f~(vO%3Ja)!)}v76a#P(PiIBLr>JQ5&3_}N&5V1ybu=h+QX}?a zP4N;YWhR7WcX%hiz!W&f;6y@2bJ(geMfqxX_jHH4fMfiUX*M(wdLifDDqje=sw#J6 zi@U9==D_oW>Pj_nky{mm>i11XN)Q+lMK_ps0B6F>=5#qbe4_nk$jA4d1)tl20 zeZhMvNgq6EKM`1nM_f@)e>zx1(i{&dVQ_oE9-C7BdZl{l9o*Z9Aq2k43*T?kG(=Gg zEGZ+*c1`aP97gr{HW0x1nJLM!H@8#WQ-l94bqu6&1xhHgQRf4`lM4OK(jW-p%VJrF z!FA9BEig2}bs^a3=Qzv16Qc}%W$``bY%c;PH9p1ZNJXkjop!a~ypUzh3%<$|ho)@VqhGXLZK4;L}AmIlY-(Ja#SgP&r?}O!n zl71+-r~U(v*B(4>A*h~ox3V|Lbg@5K=tCo$JG>AHReFT^5&&%O;j7*l!UM%bAH6Dn z^00td8ZYUhclAV+zjwBF_kaxau)ZQh&2U=G)>uYT^zK8?3AP6^lcI=9o;~qtV42Y} zDJjZGudr}LzMfWTr?1HLMaO5&NvV_;xs(hYM%<6Q)jp|2>nw@ z*5Cjsk$!J{c)Emf?-?t0475=)SBZ&0a>fI=ro3!?--M&duGg3!-{WUcOQ_dN}fTjMI<=K=b+Uz66oekLbFXdP>qryJu!NZpm+%O({$5A>7E^({P)K1Q@ldOL#GK%6<}6O2pFC&r7@;HF%QLYZPa%l z3Glgz38$x1qhE>d-;Q=qC=}Vf*Z*`l%RE@=70<>%Mv^CwSob|83(kD}*Ln%eRL}ql zmu{o!WZkx;7hf-A(Hb+hk3Y=s&60+wclLK|yDjErXq!pVtBqBNcx=@Qma;Wjd?Am# zHau1;7epF?v8{?TVB1DUxKCV4n2E0-TSDHY39yV(%WyuS@P}ByLeT zQyP#&Ga1Oh_E_IuTHn>mh?-2+_xM$<_I~TBOrap?GP{m5; zI`-x5aZ4HVc`tJVBLrwRxVvlvoF}p)N#FyyEGpQ{c6vm$vgrwhuw}EZj>;+`f41A` zDL}J}k$!+!l4<_H_?rcd3ivRC&Ytv`hZ7PtO@fU^AJ%6_sG|IU_+9aU6C$Y$zDWmY=GxV`O-en5M_n24s^OYH-pWa5g ztF#tRl)-v(IFnN@&zb4vX8bdtvrm^Vz?4g3i2xeB#lV>Su2n8cR${zP{gg4W9F^b` z+SLa;Qz&E~17P1<91J2-7}Ix)j!!AvfiP#9)JXlf7#esj&>py6PBEB1^M|^mRx*@DHxQ(L@z8IKXyC&vmH^66u~{c zpR&&-tS0E_k6LF`oV7-nZ#T5=Q6Pm14cKKYks8KSbxu>(n$9vtrLTRHiVF*fOdZbo zF0MJ_J5suLT|9l^9GxG;*Cj8x2`?R=DINgu?3}SycA$*E&7;eAKO?%qh*uE*9BXq7 z`T=6UV{$q@DUTrh9MJu>p5+dE>LfnjR9Log6j4QzXb8z%eD*%Z+lLrS3?cSw(vn@G zw5(nC0r!QuZK){r$YUPqA$mH17Wm|JZg04S1Q2(bC!e7YeMn#WmrUNC(v?s`1?_He zX}rUI7Fs-(+0!vdQMPiKfGn1M8Njw2rIC`M)lLolyfm?_hTk%W0gSy*#{jh_D`koH zzRk2*;IEgyC4!mq0_G%k4sspjT)s$%DhPF?XahIis`%tZr@Y$cRm5&p;*Ut>YOl`m z_k4^>MvvT>V7f;rg;?vas4G(xJvc|0j~-lweJ}Kwa5AsFWY=hIxt5p?t#i3)GweNH zj~{q`j4n`K&n5Sr!@74lOEk1EQbITB47iH~cr9OFb?*A@ATU^Bgnte3w&n2Me z`8HD1Ri(Hd4G*8)scc&fnr#SgH0v#+Vd%}^tuXYXT=;7Ref)#X*N22lb&68_+8Kh9v_Xb)8ZnK!wFFz|NsH_6r zez*v3^L^L9(2aLWSR+k6M`G^T8STZGvm`=Xf#~14PQNFM1@1ej^M7XMIK9PV^Iog% z@P{LPER2AXvR5tvDv z^c7}*l_fP$d8l?`XkgSj-(oo`xA=~^+tPC4mHeF#Y60306EP8jaOi~R_ zptAu-xAVbRz*p1b^U<=R!girr>MLt~O~Z)w^UI0mtUctk|HY(9QiUP(g>Poq37o?z zdJ&&Cnq`i5im-Q2g`bu=WtR}^v1z+hZm5td`_g5<3dRj+u(1eu`X|&^xup=aOi4dY z5dUtDH4*D%?Os;eeUMCKs$Gil7Elj=&13B$l-Fnr#nyOY5e>a4{M@6pr!@RdRTi+9 zUwGR$XUY5OHEi8M!2vfGS;xdQ|FeX7B|OEUt!_4Y3R|aFoaNt#_hu)!YFNLD6|T{wTrZladkPblB;=IQuQQ6x0yK*&l18RQ^n1o1KzWe-Bnu$I z*sFk|%a)8pGM4*5eVZnt>G@|5paFfG?`7dv-61yIb6-8PGB0gt1-|~Pgi17?Q+0B< z^v`kv@J}bKj*2YC6bojC)&H=_8zf zbXKxEOo_jg>Ytk|@A?$IO|0~U#X4sBS)KNJKVMzvtsTvpM~oVajxQdg`<^|qaskev zu+_l4eF7A0aZeW-#v1KfWA6s2XhW_S<(sY)MzRgRx7jyAOiwKa1PDFyBz#>lu_n$` z5*NuuY;X-+gcA&Bj9q&`L1IdHc}%O4iaShj8eMcw#C^?5`(#MR0bz33^XySO3bNDF z9?B1si*OoW#|iyO=gCP={!=@RVK(0uPl{m_E&*#v7kIZ;8-VJ<39*f?8;x?_Ii{p# znWQ>mVI3?8WoQdEz4_H(&UOv@e`9~s1;0Vdult!;&&v-kCQsHvGN}|WJkJQ)QT$1@ z=m)99pO0}h0RCE2q5bHPZmA0vwfQ0ZZ4{x)Ijnv*#HgBoeK(q85e>JoX<#(fg186G zK&<~;H?~-J=etV&s@HurzkG6pV$qVhymo) zy8~u8-0~+71Tvzk;6id@Y@y}$F5&_gizo*Nc&~;XH1=cZRCdrAQnNH1>yN6T>lUk& zF^JF49sbN*{Us1mycdhIP9l1p58oYD4DB5txzo)d;FH}Wf16h5f%Da=;U7OAv|p{^ z9}0F@R259f`EmW|P$5V(wOY7!qMBoY|2%a6z4Y&}^j{8$Ca#|r_}|#ejNetIjHV)Y zxsF@T2tnZ2)(>}RX80qOLN&+0LRiI53kBwu8lY5??r!_!(;o}o|6clkf2{Wi2ts)c zJgyUWG*J3xC7Zh`L1muA*Y&z5q1UMcqxC3bJac~#>Ax0&kai-uc?M#q4+@tsv2>^J zWBZ2~fEvz}3ZOvKb#wuZ8~T68kjVYh)wViKQjd@sD!>&rp+%j15i!)CGy?yUS9+G| zru(z%vC2)W_<>U??(=9M-6c{hFfPKs?3DzuuzhhTI@Froaojgo=rPajSLyR{MY?;3C|%?+UeCL_o1D=eCE2 z**ss*I4&c&I@Pb4_$(Z@2f?aISw(fqy18t*GDEMO8f25Crd*AT+>_}zm^b{aFz>5u z8yvLX8R{(t=L^NbJ)ne@XzUo#XR_rk8imEtgBCGRC$p^()9_1-T^FOrKChKn&Cb)F zT6?U=d)<(zohf&^OP?(-PO*@Uv}-iKWc}-gWyJAH zPT>CgS*u^39}FG_R!-L}4{dlri&lB%nsdjs&ie{@D8OSh4Kd$~=EH<7)|><3S)E)g zFDRGsyO#Kq5PNL>42?SCB45d?nz1jMmcf_1`1O^Jy%~9Igkt_Aa}3NsBN9>-SEV+x z8IdBzAw;I)$tjy>WplcuKe(pp0}o~3;PhpHh9kxa3i687i_lQbu70=1VUGaZ);fA; zB3Zvnte;TAE;`RIZo9lCdDBX!-5ef@XZHZA|J4ulc2z!axVHY8MjLQGznx#XqS3#$ z<5dT zfMn_s-G=oC8gCo-QtjjB!62K^9T;%0h5n7_G~3|7@fURHZxIUHj>}d%@$cC)8x;N~ zm2Ir2In(-z&9ga(zB}$6oJ0C?DgU{I7X)SHxKggR-l=in`Ipz_yyuHXR*xAcqEo|N zq?|%J1EZlh3UPALM$pJjGniqoqhi^~vnNPR=#xUwy$o8?a?4uFl2d1Fyq}rM0M99% zHhLQYjKj0?E(Zpq{AIz7UAy&VcEWA$a#8u9WSG&Uy&lLU5DrZvhpu3|`q+{}5hF1? zHny5|inxJ$%C2i{WO$OD=eV|m4r#pos59yT07y2P7#vK<3)B3GxQt1%ijt0oi2^)j zaOlyKvzvA!V{ykoE|u|EvIK&Y0q*@>iMzi;dfrebC%nDPnH@xNAdM&Phmmvy}vIa`N?rO{@& zzSqaj*QK5K%ttOa=Z+XP7xcxp-xDiY@Y;eOen@_J9@@;5QT*h=Am=H|7=^@>dBXA( zYLm)u7xlvWm!u;fVXwkdpMb|Z&k4##VsI*^aUa*!Urm=TWtUIw93Pi4N$fs)bvMG~ zIh>PzXy%jNlfCpB+T8#+xz`8AqNC7BMLWOwxa1LItI!G7WL)>IOE`Y?xbQ&)yJ+Jt zv=)HVt1NNYg)FA0O5(rBD_#_S)xx%NaG|~=q<0byToEfF%)QMANiFE6k#`JviuF0Xyp|tz7*G8;U}hQ6*HuJWw_W?YW#&4Eq$Dfe@vF1$2fSGYS%6@Dy5pxB?K@PWNc@Ruy0=OqjKTA z*nw?Vc{|9#zMs=jWVpkqEdC8?Q)u>hc(D7X?CP65UElNGTYT}n%QE|2Ha%V2zH8er z7j_-nqkmr!UDHVBAw$bBxm#z?i-+Zyb8+fDGrE8^ZqUf!LMPtck13%~AsL>FXHQzx zNik)wZl%*oUARN07XPC#j~g;H4o{#`A|YgB1kXlm?8#xfJ?u^NIDi@X4Zz&wwM4nQ zVCBdKu#lu%w~7Vo6d#d|Pwh=~>r{6_3*Jo`xpsQ5`QipepH7qqu4oxfu8sP+s0!Ca zpBrTH5uflRp8bk-+%;n;92Grc%whdhzcdMh_5U^q!nQIYA+?Y-1!x8 z{3y*k4Xj7K71QdW3NtimpP(VBoAMM3^e(TNQ3hbf{recgMGGv_gZC&)QrVHgPX>~1 zF6GOd6&|EAekMCL`m54}FO3O6>U06=oX)=SI)x@=X)}xuPH6Y&^c4g9Kk&u7t63}v zpSctUp_^R9a&ki!MGnf*jv(dgT{=k4J-H~kZOv$xA#R8u{73uD>4a}@h-TqInYHsmfB z_%f^K-fc*v0n)I4ZwiB5v`K5l4BPPURqWBGtxk}ex#GP{22zk4$ z?tXiHrIn`JA^4W~>C=drz!)Q4$VbL!fnP%LCk%rM6e zR&to|N$A|kQ~5Jq$Mu0?3O;V+4)9GnA`oh{d#WdMOIu>COdQwxuJK(Yi~EW6C>cre zea`~?PT%U#-wu$Lr(dgNqbwi?ZV_8!Dx$kskKmVyZ#8R9^f;ZC*lA!i{=uFf;3~OF zt?{w90?6$)l2L9J_tRR`xEaZy#*hLY8HPv5Pm}b5Rr#|R>+ohh68n5F!@C+^QiClM z3r2Q}6QyhJs_PZ{<9dM{EolNd4i!~$Z@xsS=u<>>jgk05fTYe@%_aL@L0G)5U6#5; zH!28lhqWjQro*M+L%orz3D#F^CF`6EumLbRklk%1F2B_kEEhWq1RSFD$JCl`)#70d ze)xcb-1`DIMR>|-8sD7_MwSP>5|BwGb_gi-zvuDI6Mmx??Te9GnJ8UmVNzx3Ya*aBMq&ap&!-Sud3}c-6AWk-8);_*%h~zzBpBz4{^(sIR{Zdw& z()S>Thk}-=7c}|Rq1i}P%`?_g1ttpx4soBzB!SsZJ67!MNj`_z7?G^g)-(W-iFFxTGA{wcGM@S7V=OlsP-4wt(=Nr4g=|v^ZG{dVPA)z2VYy6OF*Uo=ZeQ378hJ2Yhxh-0m{mX)ulT%0(`k5+Oh{2Ebs z@g+Vb{D>K@E3PI~FX8_cGJSO=_Pw@2ry@4?%*V@?pA|dsT?4h71Ii$HlWx1c=h)R| zRQdCg%gX)$^Ku_@sf?me`*AnZvr_@zx{^DmpXy=Q2DWY$e0-ThPC+w%=D+ z15ewEd<8}fYSLeL1%NokQ`CTrAg}+5Z(Nmh#zd6exY5T;!=cU5pD@wu1(l%>PBv9$ zLS;&#zFgnm`gsagttCD`c{awk5AIVXgo{v67e*2V6oq`@_)Jw>w^{&%;fHVE#ac(9 zt?j&G1?uY#(%CFE;Kb5M0J?C#!F3*t2wtI18FOf_N9MOz8}V1mawAMxW;or+3lXo$KPqp{A=0P@(k0w%+Yt5?r`hihr1#x#wrhoMq{1GK-Tfv#*~ znoxv*uuuAqhn=i$gsR&&JAcc2N#UW%_a8@kgE68}WHcY;dI`igau{RfDJcR}rKkUm zu41O$M;a8m<7FL^mtKCXA9zq~ly0+TSSXC?lrjZs0hQ9FgqUC08Tp)%3@k81t0*xpMOlVwt~d5OUTt1L?>!QywfY(PY6S6 zO)Y|9HqTq3cGX;Vnf58NhY{g@aHP6Jzp~j9dp5Cmu4ENpp8)JT;&$ILIsg-UH$gHw(F)G=4t8F83L}@1%M>5{KAX6&CV2|% zJAZiud~qdfD}^aj~dD{!D2KolEL;nlf1L~rQ`8_V2M9j ziY{H${q=b#C;9MPhSIqY035Xh*yER#VaqQlnZhH)v>X;wrlp_Y(M4E0k1bD3tp!Xf zcY^38jH&O-31Gwf6igi}@&nQqeAXI8qxeLW?gk3Rpoda(X(SozL65mc_ry9X=meH) z=QPgl%V(7nEtHD*4FQblm%$I`snFPuy}=(M-NrzP6$+FXA5&O$-~;Ineuj}t@|BbHJ%nyB_zmFyNbYi4T?K%%kH-3kphsCeE**m1hlHv{q4D? zrp0E;4yU7|k9t&TZBJHP>8-zQs=ppowv4993p9CM;zZ?n_s!{md_P69>fMyqtJT); zjP}RE&BuIizB8nYVwqp?mw0XHKhbPi@)s-(;DDN)k0hji#cI28M8cMv(wL|(5!vv& zQ8XRBWG>yqze+u_M8|PLJ}@DvM;C<~RMP{>QxTTZfM>McB{e_^d#>INu|ruVm%pad z%079r(n|SFMP}TvCjES4L0hS}WFfl77 zX40zu0EIqY0Wn^hMUDy|SrNST8|T(q+xL)H2{x5*U)}0}AtdHVq67c<6721OdoD%P z`r}IHPux_hDYxxT&0))=-Vn}DL};+6r-o(9zT?#~&O14~o$;&F6!9L1s|zvfZF#NA z5|dr~gz`n#bGH|GhXl{{Ftk@McM|eCs2N}YcjMW{|2u}(*5Y*Xc4)EO)HBteGpr&y%hJgU?IaQ8@9A6Gp?NC&r7bIA1$f1mA2qnAOrl)Aa6@*W)&0ToLl_ zrpqNunxC91GWE`**B4%GRX>dytC$0X-Ji?uJOe2Z$kiJC(EFDsE1V_^x2Dh~B7BQY z6j3a;@tGe-#%c+o#&SV3!Nr~vml#7X=rX8)t`jM9ICi4O$w6mxjeOc;BcZgK{zLOzOe z>64DjE2liHla1bZZ|agBOt8l}K<)dnQfe2!F2Y725Eb!2n|iJeXf)Hn)&G>OT6csl zYpw&-F&Z<_tL~Ij73aG%{PMdgWsxKOb_iabAJ}jiud=}Nq7;F824|~%*0@qh5cfV< zHp<@I9PZPz@f6i0H?h1vqH6+q?l2n|gk1{A{ZMFLQV@Vt?6fsS8D*R8K~dSA@s*|S z+}v|H`_lPfst{7pItP9kiI*95fPRjqg@{ZC*XpwXkn&<|wQOv-g}nN0K)__W{~NkR z*Nt`}&|D#V!)2UeF8Zh|rZxS(T;E6$>=&6>4i~9$Le^q4Hwd` zj(F%ZzO~uLZ|9x=ZmfJKiDbBAoHlx^N}YD33(0$w~cx73w`!t2GcoRCl9u= zsHr+IYVJP_WYl?3_6-q&OQ54qEx;D zRgn^eyXM_w0@ZYwW=YhWBuAWg3{7wRUN5m%IA$|XFq=}-bK0P4)&+F&L!1izF8xsZ zXr(*S*bbWPcORBvU&_)1TC6_W)IwBZr1#kr@Wpw$k8;wm_HTZZ-&+#v!q!o@a&^C- zqR;7zVj*;HGu6QG1J_*ajq2YqwIB*dgOqA}*X6J!-dS2@Z5t=qGS#yEBIl5J3Fmmbk z<|9rbM!L<9LPIO%QnvocF=iI6|F6lZpZsA<+HMc3XvdSp<2>ne^ z^r|!pRoX>5{#B5*gbu*Xh#j)t8LIrm{dDls%q;)@#&75v5x`3f?P$aY#r6G-fc5p| zq_H=o=S+i4pa*z3;ikq1CE90bC?aF-)cO)29aos`(wM2nGQlVbRqNN^cn$xRf}Lk^ zk2}-bvm=%ma8PWA!fIPQM1Yle^GU8e`qlW8(9mH1?8{Luy+k#UvMjN)q+oZIm%QUV4}KjCNl_vT zuCi!8NU0=0-AMD+b3%RtupN>++APFD0~S(k*Xb%r-Ibj)Hrz{dXygt0zIXW8sv)_Z zr>hm}@=rvSK_eAs+5Gp#F@JI!9sO$f>2vvjPx8|KgsHEDz=KEMi=`SaiX=#>>g8lX z4+CZCH|LWLM-~LRmtmjdWb}bF_hEMn|>?c z3JLA7N(ynz!S3_G<9E6T3{osiOH?!)8)*#94&1o3VKB6|Jwh7|0Llr{l4RO^zO%d| z#(k|B->R9D!=Qaj5455!XB*&|=AyNl2^Y|6mwC-VH=b=!!5g>d|L~q0W()}fTSqJ) zXiuu`mz_(Fh{FsEL;e0`5bMEr{vbk=n|?mDDZ~TkYRmTESc5(L-{ne**`!pq*de$* z^qJ|3=W>}}Uoai*;0=9d`UgLJ--{Q(pU%UO-y%-`PMGw20_ua@#zgK@MUF5v`LGfy z(U~~!Va$!OIVH^?0ZAN9b7p+|8&1IEQ?sYV*#HRphg&^(qv&;Sib}Y zp~Q@H%4FsFiopui{xH5p^1kzi+x7qVOZ>-hoX4*OLY9cr1`674lHlXec6=AnFzfM&3*RQ_cD5qQ_@rINOOY2ax*sC zD+u%?irAjtnEdcI?6to*+Y1$0yt`t>PnyBtn-j4^gBApg4gvY<;jO(J8LnJ>kwz|| zSUs=eyey=pBR=suBimkXuGla+C0hvJ8}IOYgTc(u9PlMh6pfkde9O$gK9D3fB>zS7YH6zVgBxg)*Uq<+Qs1i~y2*v-VhyUN`O8+Mxs=%wgtE=7~hnh#A zz6ODy?ogSTG98a2j{qluGlA5UBbo+`w*>56_)<5;)=jy6yhf&HB`IGSKUGp_7rgMQ z<$UXvBZhiO9J+TEUV6m2XZJCJ)sSzaSMqSfX+7$+f}hvL;E6L5lm_hXY4$(6vV#rx zHYBom{0wfVEjF3AalSq5E+ZIu{4eZaJ}S|J_(ZJjrVKottn!lfqR#lXht^&S)~`}Z zy@K*=Qj`rvi}+V8LStCN&@wNo%5vSjjP~Ht`8M+bYGcfM*|@zpRtQ5d?PLJNp?>*) z-}ztY3gL^((5u|iaidA>aO2)J-gLuzJEmQJx_r{^2{N`OS%tZm4T)bj`Dgp%w3w)k zZzFx`^*9~u)`KHhNz>V<>C@C{hv6iql-Ltjl}(8bM#s%oCBLlAVP!owr{G;}*pL|& z7Q3qKO{p$GWQJwRKLj2$Zx=i)x$L-90KU0Jt8q!GojjKRrO>Qo`r^xCxCOsx&7EMH z61HIMlyN=AstBsSkvS5qOr}3sb@;?Gg@bR`8@{A87moPAx?HzKKF_C&RZ2-79tM6$ zt0UERm5AswI@?KrD|tPS_4W8!r21Fge77ysZW~g@3ZI|F26j0i zZ1*$d>0z3sp5$?N)Z)Pi2V>wnSSFr~`ccw;WV$2z2@?)@2!6>pChZYbbY|G(mP^}3 zhthQC5m#@7%Vb-We+A7|13XDi)LiVwW$x56V_Z*{2;nuj7klUHhft<-ebl`rD|-9m z9zlG+`y!nC@W@oVTl@N4VXTX;UaV{G(dxK++06V#MJv?$bT=W239feiRPe=2YsmO$ zUM;ipnJKxmZiB=ls+JB$r#0&BKIO3i%rEYIws4W{^oH<==TDyX?InYu+d+%Q#G8kS zFzEd8n6e%|%U_rJ=lSK)B=Bsxj`=Bgo1GWY>9Dwx^Nf8SQ+d@+F{}O2^M!qGhb(h0 zbCm=bgBwmL=e8!d%hGc=q(RX|voFU68)F@IA2qdu4d2xbYD|d5+;M7qLh+2RvYN@w z+U#r*I$L8RFj)KI!ATUhgQ6N@=_o@X>W=v*mCGW<#akfE@cKmLb}U#F4PXutfSfCU?uZ{esPLx0^L)(jUh=QYGA6hJ`P5h}=4M z-5qstQ*Aox^7%7Yj*PpkRy~-}s%))_+mm7D100;jbaAafXLKL|?2NzNVaPvRrN7y4Q9b6R{<}$;m=-@$inl z`p2!2?!_`z<-%QT;usL)5M+Dmy&j>n#ZFf@jtlM#wNUpSMs=u~8TAd^vsTZjvV~Ag z#!5GPCi|UuDp}w%wmuz>$J+sQH#XEy_*>bzw;dX+FFo=7(EY9;`rwur>e6DT2^5kWZ zD)jTAbl6U#C^0{*=~zj-+gWcuM|xNTsWDrM@5nL71lefuk*Hk5nCf2}HGHq#msn*z zzt+6cCv-&H&lD>rNHN9`#ZKL>U1tlTX9)w1f~Vp5J)$lfrl3TUbP+9@gPE7YE6q-Z z#u?jjH6AZNvu?#u&8|Kiu4)tgu`;QMs|OXfPDMy#)(%>3m$^pG!ZmjZ!UXXbxLk^> zHrq0uPH#pAjVe0q#@K<(cx%@qR@%0Xs}xGf6Ymm1s>j1eHmswz@1_Wi6G2DS)DX67 z;sSgy$1yM|$U^Ie(D^||?W_(&zAst#C)83+DdQ9{4)OG@`2xR~94sVZ;Yz-@yNmOh zshyU#MT_9+OpR6UTxSuZ>)Kk@ytbphqDenTYd}>=`xv;5&Ooe`iS2qAQa8?AB1ScQ z#Y*#Qi~4xgBP!{zi`4n0g+-p;JPSnw8#$_CPted;8|N;_RL?Z)VIC&e*Z=WiJciZu z$~jKkHML;(NM6}y(}yV`DoZw|0~GNDp}>c(Rx-$?u_K;b$Nm{w;9n^t>@aRm>>IN# zD`sUD9yi1;ddOC=y_-pP=KY8ZI@w3fbG9)z5(6Wq02Z#9qE6yschYv5c7}z-L&w9w zRS~4!p}(lgdYKarjes#gh$8T4oUKt+!kS0%0>O-s&dpR2A*k4@Ib1anH)84vXkosv1QDX9~7_oeNQMt{08 z;6i8ErA=%?HyG*UZn5SWKFXe{y6xs|zB_>6GE~`E^K&VS5yDPns=U=qw{*uv`gqn&7Jmml_hh!@sv&5!KbT*)uUTne|cNH2o$m8F8r~#zaVXS&QRQZFrp}(yL1)#MA&f8?eZeKXyr(p?wLUVxi!9{n zF?AkSggu%VeZj|mR^KGjFL=GnQaOW4L~CI1ZDpINN9wq>ftm?sf8?E(d1vLG8h!K0 z1DqyS1CP^ahB7|#<+||vm|%yF0RkjHC*8Oei{aCEd81}g7tX9i^eXIhs*t++{n2Gt z`QPr=u?$u<(l)N1W{hk``7+@zt2eDYu2c)Hb?DKHkVO63tjfIW%3p z8+&!_rPvPm01Eb!YJ4`L5lk|78!M9tRYHrGZW}Ri5IS~KiQHxF)b1phzhw%q&m|=g z5<@LkmoK<`o4DzuzT)Z|qR>1>u7E>+c*`&{GdnUMLP)|OSYr$XKRHGctJ&OYqr?h8 zF>kiy*KCF=ZRA&ch63jkn-gb^A*zE!x6_cUzRLLVO3p4lp=S-TcgEMtE&=t#ezFHz ze4q7E-2D;LK_LGTku#3~b4wmkG`+yBw20GnCh`pMzk?zo(Z!LMC5+B0_-BVd%| zI%^U(GG>msJ1R0#9q3oWx=xol6ACci|4|(LbXY+ zU~oo7p{sU|z6?_7ytg?UWluAxPnze=lw-t~GLXRw-{$r=0yA{}7(#*xwKtx4-Dj_> z<+F^2EGSduXK|az6%C*yu6=IiRAwVpU<&NmcF*j6M$m3`t`MgaRlc6>ei9QrSMd&yXarL=g;l9EG+McVaQwpw+6wQ z)GEgF@?rRr+-$VwbA2|oURyY-dJ>uwGj9Ea-7xYY)hs=pPi*O(7 zx`1aXYg9e_FH#|f%lH&sAs5y93NelN5IL6%WPXijr8mIy@!9~LK6|D` zd9qxPUltzLu#NMHFrcL{{^!N|@h?;DN zmjxIJ>TXN3k;kZA0o5WbS@aqtQ$5Rk=1NPF_KuPQvDxx4(Q78;LA?sN{5jD=_nH}T&sLpS?4;a_%grZ*lpGP5DI}5gp8ID+qCxu zO9QR-YsF;ojH#x;u?0~WL0n`rBeR!F@UWm?vbCgnNt;YnzZYc3rod5Qt64LfcD5K5 zE+cIai-{^gLxrl`a0)-}D;(yqBwDU5Lf;+=Z*x$rgi9s2+JFl<0k@k`WIFe~oP>Q- z_s2qX05nj1oNtA5SF6jNL+kwa#a#lCM0p&H!lS$FUyBTxorRTmi$TT1m$K zTL0m6f)wjwhc7px)ZBqu0vPs_+lJLsqq+rwu0;nQBUPL!Ez`OU_|3W3a#h@GMiYCI z*77?HP|cH;b6#U?!FHx`$4yO1!x_xvI`m~mSs7Mp+p?)&Qr0{G8Hsjkq!$Cqk$h8= zzRY})MIxN9&@>b>Aswv%N`vhPl7;+|{-5q}H^ad4%p} zn4R{bXLlqgoYh0;F(1p|t}mqAA#ZvnK5t~Tn@)tdyU7HsKs-LgSvk2HVn?P#kE8|P z3Cs=`S9*ODUBw3QX+9FR`OG4#hzD)Q{kQ8T2F;Z3r?Ci)ShXxBq z+!>w_5C@zx^@(;MpE;~Vly;LqeTjVB^pu$@8fpkko`14R)*i>{#EY?6f;%-h!1B48 z2t^~tnzKyceu3V>fD&vG)0~38?ojNHstK?6kWRsNU`8&EsU7`dqw0Wr(ydy;*#2akXvwh^JeEX%UXLk@0XBgZjGJ|HxbnJ- zVfDe{2?yniRe8Dxt3OW3s48zX(Z(*VC#(s3yHj*Lm=Q9a-@D#1K&~yY9EP#H2hiL~nq> z-NQ1b6w^ZtdMD81!gFoF_A>}R-W;?|eK;GB)6cqK%Y2bV(J#EN=Dw5Y z6>yBH<^fdBW+OOK4TbAM7rfmldh0R&h6?@E&OAlh7dSF`V1;g2ew?p%pqp%>!puW?aZTVsAVZ{1{_O zuQZ>Z8Y=Ufk%ay;i0NFPB@Wz?blqtpV~kpz^Db}gs`6DsfzWA_^3No|Anl1XEqq_s zJ?WG3Qe8SBSA(Dh&^D@MjafN~5OydP7r@vxJz#CsxT9mAThE{hz}b4xSf(+KY<8_& z$uZHqgLiQ)S)hlb>cv>@QO4X<^3G0SDi!PEd#H?!S>qlDFjUsWAza@FE!(J~MLVRr zYq2>2S;M0nd(${wEY{o31C~QB-=UIZE0X8b0u6snnzQ*XbgPU2FC}K zigO%|67sA*-a&6*qxhqWAw40S1mBc3^HHc^47p1T)zB+Rep7V1|B>A{Fbd*R=@?$5 zH?cE}D<71kuZj%KPeMjt7$N4Dd_#o=;HaO-5`mt|>3G7*hS&VC+dS3TNl^;3FcCu$ zf8}eaZStmq_K`_YvP$BO@%5!1woUye&|!k}-E|nj7NNjnn`5N|BviF{3S{DO+QXCN z)<-DZlxnDY#$mGB1LbRS?g(xxe)$032Unl;jcDvq_vlTMWD`K?=-GPp>&w4U z7=^1tht2(52(#wZISbY97_RTw+9f|$>fx@MLeJ6NS@oVvyh@i#LfhX4bwNO2i)9j; zZbb?nt}pvk{)yS;W(cSwWA;@JR?bkn>D)#uOl=wE`8Rs(1>SW0Z)y99xL1nmY(j1s z)+vV{Z3dB$MG?nSj^Iw%x#_M!>-;FuNRY7tAK^G=#qyCY!f3+m zJ;cl`OQDAGcuCfDck+o`qsu`KQ^#F1fhsqLyec7_{K|H6_;?o&fyM1d zF0RqnB8w5~`SpJOgjp{7TG-mzC+70FB4V|aYaA3Y@W%Mm%?=uU_RWuWEi~~A7c6KV zT3~fJ+!ehBle1`Fly>MhWJSlrafnK=sqRVI8ESjN)(fmbTS{#c@uX+z=QA`g|8ytp z(^VAulQYTC9JS1ww#+C?TP7|jin8Ab10e0#o=uV;=Vv0Ey6&%ZUQtNQM!1kY5@~!} zl7Ed}EcG`c2g1$V=@gN)O!)Sw?X)svOr=^GfVv7M94hL@ThQENg0RYVe3;w1B+_e7 z6VMR=z=vAs95nb5TJzZ|1W(7a=-MSs;bV$aibAe)1jZh!%gu+w5ke&~h*EuUlL6_& zFKQ+$#zi!YHOyJfR=gka7XZL$o5h2YVg1khk}@avazs(BaZY+Z@GyA{h0&*;O(pxq zPJTo67I-cr4SQ4Q=1zX6vTQRL+UqVt207ob5^#W;B#X~ zN08%^Co=HW3KV$^C)^|)@1~HUmwp3MIhbez!RF`;;*wMAn`1~}5M?Kw?b89l?N6hP z9Ye~zKc%Y*W8qy=?=mTiM?bR5GVkFf#;e7`Z+^{*CMV_3gIn^Ph;jSM+rBz>kE@> z&##qBR`$&T{d&O#bM}yU9#XhQQh6lekB!HaFIAEbk^9GW%9J3yqekc#t0w@DGAk{kR(#*2qGx4UmKILfnCbvc+h0 zO2q?vgLnT#NlpzQ9&?J0Urwpyc2E{WLnG^rD z8OdL2@)=OEtyFs;BklnxHI|BQGzt{yW}u?YWWH4ga@+dErv_amlexu!mFRFQhLp#_ zCCH#n3u>~JP?Ilag-L8ycFx`O#Ob>_8#BF;{fRX*6y8>AOFJX>bJR_KH^Y#hbG}Rw z4`keDX;VLH_qfJ(rzV9CH7gh1KXIt*+gc_c|8wFi4V@k_*~kgf2e zQ!Ls2+6tG@NVAv1SGFtqBFRjU6jz>8YVWx^c)Miu#F07Zf2VJt+iSU_;Z{rCDw57= zX}XFSKTG~abygN{PrF%7&)!3vHV*}Iu zIaax@z)7Ifjp-shjE6!zjDe+ynqvf{+emU z(_)USoMVyL8xm+|A*e3BJ#D{dTL`fh_Q|8=3cpKK``m<~Zo_%CCFmmS<%uG3RJngo zWPBryCp)|)kEx(Kvz$?il^K9J&O-E;<~W-o_7Ce8?UeMq7l{bN`r?iG3$$B3$uR3Us#JELpcf0EdTc4&P_kE+r6_m!J zF`*ePe>1lg9t|3BlBH{ge2!GPu6eqIEMe!nmYM{Pbwyq&`iR26)}_Lru|6-`DnbpIwsl8gM|7|;uRNSZ=n_iCEC}t0A+0aSBu6G)+rY-A_6;Dj9~qk z;%M^VWS@6m{7jAP^3fZ6u&&g$jliF!HU46EWc5crN;bn|RvT**WWtM0)SE-aDGY%} zjhMGiMrAHPc=ZP@@qb|O?>{+?hW4Kmr@VnmGuFS1`W~@Fy+phB7>ICQKL4i|1(3V^ n-~asI3xZk${{t7pmIwN7`IRjCwbB^W8Hx!>3l{$R!t4J4%c1~< literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005.png new file mode 100644 index 0000000000000000000000000000000000000000..28e8ce90b67cd55e27e72a4cde8defe092038878 GIT binary patch literal 2493 zcmeAS@N?(olHy`uVBq!ia0vp^3xL>xg9%6qy?p(Hfq}Ed)5S5Qg7NLa{2bxuvg{w; z3qP7rP`pUR;T1!;bM2|Jq6stRxn_N03N@H09%#N~NnK&mRS%Vb;~9UO4A<7jm8?EC zMSO~es|)w4TQ4TuxgZ)C7f{OamGz~|{7vFz{1;}j&rIt&ysrmK->P! zX8m^uzCS+N!Lg3>@S{~c@jnw?SgyAu7KXO1|6`!klznK!4z0uCbrOOHO%o$xrasiR z@9B6j%Rpz{DWF+yE(N|4V&SPkOO%y%sPS~KHmZ5rE+`ly+;%ina^I)Jc#VC`KI7ck zxi;mGAFsYP{d?{jJLy+TWA{(sfBQEx_^_3Y7|fyqqq(zR*L@8ttIJI-jdfihwc5Wh zv##==WAfKSH|^hNWks;RH-tI$19wQa`y%57`^-C*QHlE2J;{${q5 zXk*rzyrWAiGgUvoTp5438gAF3BPE(5t^6B|HH{Y@9JIo&nxR|XM6BO>^;3awG4H3H ztcAAbzdXxw+5+yq@j2y_@j(t2A9FMeW4T-dl|mg~KKShau7AzU9rJeAB)=>*bqV7DRg;hfQYK#np)d^rT&S#@(Z*g4}9NHP+jrF z(sRzv$}g`@ecL;6dzsG5@NlbJucETF#pJ~F;%B|tpOikGF=We@*0^_T?%&(M=Iw1h z*|`2^g4s-Vt?Om-A#q3Ebe@!2`&K&D}eqlK1wS%|G|8{>M^{kkYbK?a|%O{qI*jKIZkgPxtWo z>kn`3y{=~$b7RZHqkDTFo~*82zIpq`ZM(xOpQg{)VORYs$&B;m_Vc-w+l<8J=g6F1 z9D>6Uy=$X|_LiF8H-4PV-CYr~;afya_VF)wYnQ)gw^ly9Tl@Gu!~TEOnSv{BMbz8u zt9-rn_HR8M+iHi(jcVTyJ$Mo!$B=z`Gm-J@1jNvE8-}9qz2z{YST#`P{!-{;O_-vC*E*6&ZM?Yfi^HxCp^ez`imN8e{Fs6ZFBHRrhVL;w-{0B4y(j-F%OS^<^l6`_X78?^s=ReG*bfY1dEEV9Slrq#F~3y870E(V z`0V$W*0=boZ2q-%{pQo62YU~`yUTk!@WOeYIUahtixzFwHrlhBjh}nEe(F6x@t=A> z3$j1{c^RF5Cn7Vm{?ppMuk-rvS{ELT%UN}~EcZ_E-Pm_ z^KZ*r6(_IpteE>zRoMP1!j^}&Yenr=IxKtibNKYi>but%Q1W|AwDh;_=3Csenof6{ zU*`YP9W3uF7Pu3b*+_|pk3T}Tl)1K9hyCjBpFdY|im>%$BVnmM$6+;)x|h#%r$8G! z(X~iP?$^9iFlydFlTjKW<7oSz=A#gQAZ3^yOgjw^;$8Ix)I1GcM|6P1URG zNQM8Om+$A#{~f+f>qg7fTtoZMtGE5yFZTdRfzR`2yZ-&yxOdaKO}n-!1@vBBzQbg{ z&HsQXb%7 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..179ca92c9c12e3e263db3c48a1bf7b74f14579d7 GIT binary patch literal 21089 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 KRLN5#|NjG-mb(c6 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006.png new file mode 100644 index 0000000000000000000000000000000000000000..6dc20e56a692c647b94cec7d7900845460258330 GIT binary patch literal 3067 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 Cx!AS< literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..12a3279b4040daf9d03b6bc94d01e75b457f0027 GIT binary patch literal 5047 zcmeHLdr(tn7QbM-h^)n3T(BaIRt2pfDhjNTWECwa7PPhUk_6p584O84BoH16A@BEIe01CC%+5|{|JXnH=iWPa&i&5$ z{m%K$_d7S|SfJm^6>C=j0I>3~|G_T-z_JZ`<}J5`uGSH_asaR+9zMAL#6^p_$D|tc zM3hj*S@s&$iQMuy>XGvXs{HD6ip29TEv_H$jS7j++jGacsdvD4uD#o(b?0r%dp4wp z>`nev$Md>}Z{Ea`S(x<*_?qA;|LCU$prYpPkr_+e#`>-eIO|^KA2L_9kzvSG|A&7~ z;8qY?Nrrtcbvh#WH~IdZ9rIVeDnn&V2g1#D+eo4-a*o}6>p&t>C-b7}A4?zl5yyiC zDcW)eYrur@U|Stp_<>bviu5MVbLc4sZL9?eUW=wBj4QF)qG27&9rOq0)2PXaV^0Ny!*LH}hV40DLYvPJ4dEwaMl#6pOjCxE7y4Kt}fduiq7k)9Yi}RA1 zU~2#ts9IL)NajW`up*u}1w?cr)d4Wj2Ae}|+N^F$~(|CpiP^XACM+M=h zW;m{HiG#7yQbxZ?H&;^k!pj-n!cRL&iWap85w#|AhnQLKCZMVNT}*n}1ZB^R=g32) z3eC_)RDTEnpU0Nkz6bkkWWK?+G-Q?C5@CcP~nI)1b9)kLGV;49I0v4 zk0jQ4WE0I}^>jtIElF}0kL@@LRnNh0?RQ%WKa#v`)Iaa5;0Q@w!N}xb{VQafJky64 z52L*g0XsRn5uWSAIm6F}>Bwou`+N2phvsTa)awv(HXJrgd!P!x;lz``J>%a}3hFeV z7s=2+K7(i{37zECO0eD#C(H5Gjr#BzLXEQpa9IYG>AjG>ZHX+2uSbdM6U}Q~Pnxhp zPYy(@d)@g&kq2D04n@P65qc2cB2Z08>xB!$#*rXz}>?Q zbM)vGRi>4cP87lQ(k+rp38Cg}N_8qu-vSa&LU5s7@-w)gRjTm8v|}!#MczscxipZU zC)9JhNDZkoCV~pDJ_pXRglNV@lOCz04}OaxOnZc<5@gz2Fx^NOz7Bu3F`7r{5zQ{M z6%dSl=sCu?2u}?|;RhJt%*NmvuCO>_Pnwc883(1h8`^?DrTW}Ue5871qGGy?U@A)6 zr%?1grFcmC+H3Xdxl%&RWT6jdsw#p!%S%<(1e$U98Ieymr$f&6Q*Ey?zKH2*(dUEx zCP`NsDRQuyEDX;u^p~?R8UtM@xR|AwZt}|~pc4h2X0^K=0IVrUMr^rWewEfTi`dedg_Hv?>z!}+>IhK zok$Xz&?L!~GF0*I^fM>7LQ$OdPM;mNVI$2i69pRp;O~MPehh8b5b?sZuV-$43+3cm z5B-~q<5olyH{c|6fPJrC*d`erC(*^->d!WhXB_+e7hWek9iRjT@Kvz|TbEufF|kw= zOIu;7DJ=EErBh+)d|Z+R|3M)6pNoo$+C}lN;?Z4qmB&EZ`>y!fQxP--Z*_BZJ?d-+ z)?xIGKfcvr6^@^k*Z{z$rUwspP>w1X|2&Vjr+m2!Qhd)Z_{OFzYCL;;d*>TDCNCVX z=upMY#gTqD|Jd*;09c=ym6g>Sb8qPFvWI_d(DDm|pZoo#{(JJyefv9m&~P2D(Uf7^ zW#ExsZ`kUt{%8&=$)p`Z$v=WZQc(Blp26s<`-yd7m2V<~G^|f~Bb=qjohR8h};-!~ZJtijHouT;D0$|@>6w?kU zM6=QZZ6p?hqdx?&@m*P##I;02*L>K;i981?amvdio+v_X0y>AGpCZh8u@yt$M7$I? zD72d&NR88Gq1#fGe8yh)_XZq{+1+%dc@i8uV1Yc3G)1*(nkUUOR9kBxDRr>|`mo3c zr!iMAr*!q&`H@{Q_Q2>YG|!$c77`G~EKU!(YUg;9F z&Zn_06u8{9I2A?_^_hQ4ar~gvF_7w=9+TVz0P#JG2{)*gZ4-Ge_x38?m#p~lRU8C0 ze-Wy7&gx{}`Bh06?@OuaGoMy{Z_zG>Dg!utDDYt2fygWW0_HJ* AV*mgE literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007.png new file mode 100644 index 0000000000000000000000000000000000000000..fc08d3799dcb8a847440eae2ba0fb180072364f9 GIT binary patch literal 3529 zcmcInXHZk?77ZmpD55}60i_5gbi9BN5V-XAsG*AV4pNn-0--lSrA4HJNDvZ`4$?z! zf`*$bO?s80p_llG_s;Xandh6iGw=O4=ggdazP;DC_Fn6o6Q{4M&OpmX3jhEZG&NKV z&z^Z_*RM3>XLqL6^@FqbPc>B(jRMIw+I{rlF{gm-trW?v0}#KR*^@T4&e8VIeWl8w+erpbv-`82Rj;FI%L=tLi*TMyqIqpwx$A96`x$)!R9ij+PvBV2q8eX9XPrSo+q zO_-zI`qcsBC>eZVs&%%<=&QnCPiN~JPj+1HK8up(@=b;6PO+59x_JqhMRnj&`PlgW zq&{dvoS2t22+;maoG%_O1zb-W&#ZmCLU70EyO)a8fYEAUY%YdwG`T8{HO9q3iCT$R z$h7MQ&XJZoaO-4K>7IgshwlqtU_hp1QR4JLL9O`i|~ z24^ILr1S02>x#3Sg-7&<;HeNF&jcM&a63FCAno>6cvi|y%gHD$NA`yNwSTN{A|oi& zin?c+x2pZueu)C$Mz~cM5Bq-SN$`93QvQ<|3!?Sff$bun#i|<%arOKQ+c5Ulw}$y! zAl?nw#8;CC5|6Mui?5Zk*A28hoau7n$^Gig;o~cb!jf+DkT>7GTR%4*jn z$_+|<4tNDh(K2wF_J@{l>2yv})qSr0;7O0)Qg1$(PZ%G@In%V%>!T&;ft@gQKOksy zo1X1TZY^!&{_8!)4pxfM#%ot|BG$wgOz$6eH3;8qHlieuo33dO$VT`^$fK(oeH<*a zn_ck&scd2blIL;*i)-LWe#*S)bNmAD^txHi%N$c46xl+#hGDM-HDaTkM^+B1ae*wv z!@tGHZVA4Wb{C`m#nHq0oP$clx39L?%ZyE5UtwIvQRCmtq2@ko9r=Drh`0nvtj3|MFH4e3S!FNk~a91a3=>{_c4i_W11|;u#-iy#)rY{RMDDaY^ONMEW=> zR*%GDs!0)1;iEWW$D2E|-tf5SOJN7XhwmlYPX&>f$B}l6(I)drf!hJ5g7k7^8bnt| z^EET%STMnWhF2DS)A9u#g_C~7ls0CP%^x|_jG2mh6=F2LAhD?Sq}Dw?i9W)`Lsv0G z@uME_%8Rcbtj?oNn=?2=mp_*frlAcbV@=@y!cpjjrU?wc!Y>@;v1yrQOB;e@i0`w* zslr!2RqyDrgAMaUO0hJztaTi#mPUk1pMAUm9DOjBdH5w@I7enHF*)=0(8T<#1!9Dr zZt`F%jW$>hKrCmFT(+otvP$cRQRlD877i4k#Z5WsxE4y)_A24LlA>o&6L&qEyr(Xb zBTzdh{YNjtCAa~UoadyIGUH0I`^99GbAG_Lf}adqcp_o#qVh6+ouBJvE;Gdzd71E9 zN}3(3%A&Iye=aH@1_gZ~F;M#pN~ZL&c%8tO(S?Zl#>@V#BK7=*%gm z`Soc;Mc1#@o3Sy=dH-fJ)}kvf|~E@83%bDX|c3`X@)A=jzd9{DA7~%<s@u&&}NuxbF z+r)lAHt+9ZH|xWN?chH|S=hZQkoFn}kWOjL-339@C~l%2_^sdJmGNi6y-Qx*#@ z zgo=w}N>>RE16f@>EX3gN@Gp5nK$0hdQ7aR?U<9m+IrrhY-NF8T>j}Oj1T1{fm0y&0 zHWYMP_qInWJGIeWhxdeC`HVGPu}NJfH?vDs%$w6q=S(KJ@LD{G{YO7`MQ88dF_npL zcVl0;tw}jp*sIv}?3lejB+`l)ypN1S8;km#IOjqvmV{XI0W6wV*Llm6pPUX>Msmgm z@LOTuKv|YLa*RU#B5@u`7RWuTu1VdG zA7J9KF;M&oGMlTa=hAV{811b(D-Hb}JDt1b1 z^b-y>jyD#m*=skoVgpxJ;Z3s9#6Wv^KGd7AcLPuH$pKoWX;LX?OMA4{D-Nf6T>8o|*S#0^{n zaIJ8Ta&WMw4+v-SOhWFY)mh0njteD_A)YQ{pMa4$3r4-dAIaav$hqMwt)+UsH7Nm< z>Ru&`(@g1J?gJqgSQ#Uo%w{OD8@&0^Q8#2~H;2}3Y8ZUcyyQ#3K1J1R(fm7SI|zq~ z&o{o1*Q*^g7gFNh>2k*QSTaiy4;%qG=IK_oL+Q+;#>+C-1IG^i-3kCp`gNYr=_}eI zNQ+9RcVi7~HfTb&WGQePhh$_sx3~B5uD?l$9!&xjNkHMV{>l2-j_29l`%8Wm<5UeM zOk{-cg}ee!p`hH!tP7xfPThWz!8vy`s?1n+?hHJ{$2c{cSU->DQ^|+FRFl%+ul?vt zJegJuFrB1YE;sFIhqsSftVPt#^)IFi)gI3D^z_WI7krSCaW{o@6oipv_gz>OVos3B z=AbKOwThTDm9{1>7z)L%Jq?j^R_Vz4LH4w30KW)b=3|Rb2O@)@}PSwKs6G86&Bq1odDdXfhg)5|{Y$>86V^X_(O#)-D!N1lUSLC>HZScbEPGR=Nyd3_K5w5FuWt}8LgJ?7z6oz{v+ z%4)PZU^jWiZsT6z%mR`g6qb43QeB<2r93kvFpJ&63#ge9$?BQu>rx`wSer+%CFhT( zpxn21z4Ju3I`0op_+r_}gg`$!l)$mr@Jd=f-l^$9p4bgrr@8vY)<*7<8rv!fs&uL! zf>9N{KM{;>wC~sl-vT4eTD`ECR1GtMAH@P^8UDq6*v0ApaUdmpTu_m$2$IbM2+F*A+3kF<*U!Pb*K;* z(@Dtc?vq^pXD8iux(F$uuqBBmi^iWVSPumx!=P!+>?Im!zi0qWRb3T~l1=zO0s0@V A(*OVf literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..d3d7c922eac10e981bbbd21e18407fa712cab672 GIT binary patch literal 4947 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 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e264aeea554c5d1ffd71f2d1a5886358978853 GIT binary patch literal 1160 zcmeAS@N?(olHy`uVBq!ia0y~yV0-{%AK+jDlEJy^4h#$|{+=$5Ar*{o4;prDOP6H3 z@cNw(m!Z;1ovm^gqc((Y_`Pxa#<{FFb~3#VVdlE&B=!A+=w>$dH%H3jQ@c4RRhHo>sF(%B=h1XVyCs!XbuG2~{(q|}|M&N?{Gadn_5Z$3 zkFODX@Ob9(=k7ON)&Ku_J-`0z;r)L;iZj~H11Vn%QvUC*{r`{G@3a1>c=qzApjdT% zb?u%St`8s2T>h-A^X=caUll(^AZA3o`TO?k$4{CEjvM=*@859a_wCn@p9VMdr_Y-w npSbb+_Up$_FK3WH|DSPzddSmh3J!t55{ALk)z4*}Q$iB}IyV?? literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..260aa58b78c19a36dda9327254c4f6c8b52e5c3b GIT binary patch literal 5496 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 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..6d75e4363c91ce5ac26798864e115bc6191981db GIT binary patch literal 3604 zcmd5FS2J1*&2)}M)oYpT0*jC-v*H-+k{Yt znUpMH>|3_)QN7>k{m%QH_pk4q@A>07&za}CAK?dBPL~}*}zvI>6$_9Sm#n)&}1IiG}%&4VAUGa_B3eyB;K!b5?+*022)PY^ON zp9&6Nw`DNU>eTaV@Lg3DK8RJn%K|5AoNo%6vz)52yhH(k$Uiw|IP{9C>0q<8x~AXp zaCf~l>k)b*?S)da%i(s~fp6gC9C|S9V1EmDu;#7|hwGeI9=;A)cP-ylYAOx@zo)`n*zyQ}E#6XJ@0)gnt z0O#ihmRwi8A;AT#fX|&M$O{El@N)rCP611DdH$b15|ay|mEb3dGRIbWy0@U8s*XcVRVsR9vVN`o1I&fN)?8oT#Y0Dm|FS_T8T+Et4tsw+ zDs6waN4A7F{^rs*V&uEsiDzD{4y-vv(ZcVsljSAJE7&)EI{V=bIPLM6{tM^qrd@?f z-HIlf%sS|!@D7Bn9UYxM!b3iAf;7tRHOnseag|aB)F!W{gK*`znqAWXT_JnqG!7*= z(I(oGeT*`_-BbMi)7nl0;N3Z$e%6d7N}Oda3u{Fd-e_LIph`PTbim>d=9G4wsWF+* zK0Yz4acLszjpE*LH1btW;{JHY2A@${AW}CEllT*QT=&6yyZyYvwKidUFQ+{fk~fq= zQt|WwKiiI{)20#h)}wN2YDq(>f{WKH-~cD&ul<%_GSkh>rsNHVLD+N%X>~+{N(k?S zU+;T2cWbX}kJ5cvex4c<>`_J3$BQb&QkoX2DlWU>lpl%)4q{8c+@Yb5r%obWc6dd@ z2E$5hRtqQzu0{Kp^qGjG3HozqV!$kXQlEs9ZQ{?jv&Xcpr|%=~Un}8VCLan5J#e%8 zI=uOAPh@LF}_cP-{gRp08| zhz%;n3`!+^tS$s0VROYzvx&)Ij=(vdk?8}K=9h&aZSXb(} z?ttf9MlhDXtSy83aGPKR6`fS%SCbrdkFYOlZ-qYM7smd;2+JbnRU{vQMg)1}`^nf( zCMbm4+~(-2@}@}Bu+4eX-(+em$#7iE!fDY3{V_z=fl$1{*?h9dFhsuJTAJmSUizdI zi=B)2`;RpyMn!i^TI5hJ#v7B)BFy#I?k*G}*w$u#8oRGdkR9mxWPm%p9xD|5&w05@f^;XeEcuUHTpXCOUH9={Fl-Z;*uVvgY z@1p9)dvA{e-GbGoD7#&^rDZwmre|LDC9VcKlZw-YNztZ^2&x?6h$O+y8yd6T1iLsN z2Kzo2A41x=r;+7|5go&aqY!H|@=2sgHY?o_@_(bS8oT|DSX=}Fk4Mz{_$x+$pWtIM z{Tv$pBPF0U2lJ#%9qSe|yPQr_ZgP=doSl-O+nHY*R!jIy(+Qp$-6kh_i;Nly@$v%Li-S<+0HZdA%LeZ&CZIHSU4`5 z33_NAcyCMss>i@;R*>|JKknudhl_w#7>7@NrvY~xLE?j+;N;DYzNZb18+r^~-rK5j z^YC#8^Q8&H2_IS|!fBNQ`NHgf>U5;=8DyY-miJjQf%Rm&`Y@t2bQ0&YGjCs zM!(@|B^GF@;_Q8w>kfwFeZ10?_QQjab@#R&@3YI1mFjq z4~}g9+D~=m?ja0~mRq#){OWfR*NshYBU5+|8{^`z;XTuzMNFlUShy4WQYj4UT$XFl z+7^|j?CU?D%Nw_}Oz%GuQH!e$`q5FKRRY`Uk}31zk2B|KH4X5La0;cy)*kfjs*{!R zzXm(J;*1m*=)cX`OsUeDtf7vY8mC_uvS%awi zf6-=$%+W$~IF_350Yl5|3ir{R^UFxP%D2|5iXJbY@OokXm9TP56NwGXFl2!Ubih&G zhE^qY|%B|>XJLu)1R z^nh^Wu+`|0h{GP2!M01YXIEXAo}XR9?~Jtb#*Io%mEu^zLIGb33)mZv|1vb8!5pbJ z5AIUYPo=^P@z%ZTBOma2pqIUpV>cyiZVt}erqL#^yJA`9UqSOp+qSt6B?Goa?vn$G z6m;-=CfDVyl)9RqOjko-zY4EpI#+h zPF#k0`dBE(i2HUMlDKqQDu?l-rgo5cYt2eyfJHxD*t z_(V=}6Q}3h2#o=gtFK1Q!(SNWm?VA*t}u!D=}}V>6nh&8s9w|)0tX7u#GSNrO}5CM zEkTtl=0Ls0pcb89Sg%BJidJH{zRd%)^VNc=JntmU;$P7(&G5ir`m|Hkbp8*oB=?U7 zqXXkHyHWTHTg_u0m%{>(g}AD~DjK$d3ROB1{kWR-S3>ZiQv9(a=7;{qd^xk2KFPsG z|H&Up7JRF)rnI6P3N)N!X$f^N8T)3*>tsDDk&;c6lWfP#%G2I*#r@nW>!cGcDGGCh zQ4g80@RXX`dfA2JVtOp+V@G7ZUs!pbeo6MqIQyAQKukl)Nq?Hpud1nu+TV3vaMce6 z5G8RFv(xckddR}(7IcQ4E(^Onocp$+%M@9DvuD#d(Y4(kLWGgbsgK8Q z(Pd<4b0f@0ciH z_d0g1TQX}4izjTojiOFjbuFIgYqq3o!C0`(?fTj7jT?xcvtwp> HwF>zc8@$@$ literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json new file mode 100644 index 0000000000..bc5b8ea2fb --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json @@ -0,0 +1,1394 @@ +{ + "schema_version": 2, + "name": "golden-triage", + "recording_id": "39761205fe29461eab814e2d202d6f29", + "contains_phi": false, + "phi_scrubbed": false, + "encrypted": false, + "created_at": "2026-10-24T19:14:58.652113+00:00", + "viewport": [ + 1280, + 800 + ], + "params": { + "note": "Golden triage booking three months" + }, + "param_specs": { + "note": { + "name": "note", + "type": "string", + "example": "Golden triage booking three months", + "required": true, + "choices": [] + } + }, + "secret_params": [], + "steps": [ + { + "id": "step_000", + "intent": "click recorded visual target", + "action": "click", + "anchor": { + "template": "templates/step_000.png", + "structural": { + "selector": "#username", + "frame_path": null, + "role": "textbox", + "name": "Username", + "automation_id": null, + "window_name": null + }, + "region": [ + 134, + 163, + 160, + 64 + ], + "click_point": [ + 214, + 195 + ], + "ocr_text": null, + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "911a5096acf288523d50080fd3dd74de", + "band_len": 0, + "tokens": [], + "concats": [], + "structured": "5b3e20fe152a1c42", + "signal_hashes": { + "structured|exact|": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc,casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false + }, + "identifier_crop": null, + "identifier_region": null, + "landmarks": [ + { + "relation": "above", + "ocr_text": "Sign in to MockMed", + "distance_px": 130, + "dx_px": 76, + "dy_px": 106 + }, + { + "relation": "left_of", + "ocr_text": "Username", + "distance_px": 132, + "dx_px": 129, + "dy_px": 29 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 17, + 145, + 394, + 126 + ], + "phash": "e060e8e01f0f2f9f", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_000_expect.png" + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_001", + "intent": "type 'nurse.demo'", + "action": "type", + "anchor": null, + "text": "nurse.demo", + "param": null, + "secret": false, + "field_label": "Username", + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 27, + 156, + 147, + 76 + ], + "phash": "c3c969c2d23cbc36", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_001_expect.png" + }, + { + "kind": "text_present", + "text": "nurse.demo", + "region": null, + "phash": null, + "phash_tolerance": 8, + "timeout_s": 5.0, + "template": null + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": null, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": null, + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_002", + "intent": "click recorded visual target", + "action": "click", + "anchor": { + "template": "templates/step_002.png", + "structural": { + "selector": "#password", + "frame_path": null, + "role": "textbox", + "name": "Password", + "automation_id": null, + "window_name": null + }, + "region": [ + 134, + 232, + 160, + 64 + ], + "click_point": [ + 214, + 264 + ], + "ocr_text": null, + "context_text": null, + "structured_identity": null, + "identity_template": null, + "identifier_crop": null, + "identifier_region": null, + "landmarks": [ + { + "relation": "left_of", + "ocr_text": "Sign In", + "distance_px": 112, + "dx_px": 94, + "dy_px": -60 + }, + { + "relation": "left_of", + "ocr_text": "Password", + "distance_px": 132, + "dx_px": 129, + "dy_px": 30 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 17, + 145, + 394, + 169 + ], + "phash": "e0e01e3c7c1f2fe0", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_002_expect.png" + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": false, + "identity_unarmed_reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "identifier_crop_missing_reason": "identity is not armed on this step (see identity_unarmed_reason) — there is no identity evidence to crop", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_003", + "intent": "type 'mockmed-demo-pass'", + "action": "type", + "anchor": null, + "text": "mockmed-demo-pass", + "param": null, + "secret": false, + "field_label": "Password", + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 26, + 229, + 159, + 69 + ], + "phash": "c2c1cdc9dec1a8b6", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_003_expect.png" + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": null, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": null, + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_004", + "intent": "click 'Sign In'", + "action": "click", + "anchor": { + "template": "templates/step_004.png", + "structural": { + "selector": "#signin", + "frame_path": null, + "role": "button", + "name": "Sign In", + "automation_id": null, + "window_name": null + }, + "region": [ + 39, + 292, + 160, + 64 + ], + "click_point": [ + 119, + 324 + ], + "ocr_text": "Sign In", + "context_text": null, + "structured_identity": null, + "identity_template": null, + "identifier_crop": null, + "identifier_region": null, + "landmarks": [ + { + "relation": "above", + "ocr_text": "Password", + "distance_px": 95, + "dx_px": 34, + "dy_px": 89 + }, + { + "relation": "above", + "ocr_text": "nurse.demo", + "distance_px": 130, + "dx_px": 19, + "dy_px": 129 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 87, + 968, + 314 + ], + "phash": "f7f038e0e868ec68", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_004_expect.png" + }, + { + "kind": "text_present", + "text": "Sam Specimen", + "region": null, + "phash": null, + "phash_tolerance": 8, + "timeout_s": 5.0, + "template": null + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": false, + "identity_unarmed_reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "identifier_crop_missing_reason": "identity is not armed on this step (see identity_unarmed_reason) — there is no identity evidence to crop", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_005", + "intent": "click 'Open'", + "action": "click", + "anchor": { + "template": "templates/step_005.png", + "structural": { + "selector": "#open-p1", + "frame_path": null, + "role": "button", + "name": "Open", + "automation_id": null, + "window_name": null + }, + "region": [ + 695, + 154, + 160, + 64 + ], + "click_point": [ + 775, + 186 + ], + "ocr_text": "Open", + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "911a5096acf288523d50080fd3dd74de", + "band_len": 30, + "tokens": [ + { + "c": "9e8e1645fdec34d0", + "r": "9e8e1645fdec34d0", + "n": 4, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + }, + { + "c": "0d68e18d565ed360", + "r": "0d68e18d565ed360", + "n": 6, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + }, + { + "c": "6b80bb4112f844a5", + "r": "6b80bb4112f844a5", + "n": 4, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + }, + { + "c": "20338486779884fb", + "r": "4c5b884487197d9d", + "n": 4, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + }, + { + "c": "8a2c79da10756add", + "r": "8a2c79da10756add", + "n": 8, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + }, + { + "c": "bd8a1dea16c274d2", + "r": "63c0d27e3746e3af", + "n": 4, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + } + ], + "concats": [ + { + "i": 0, + "size": 2, + "c": "69675b2937c1909a", + "r": "69675b2937c1909a", + "digit": false, + "name": true, + "n": 10 + }, + { + "i": 0, + "size": 3, + "c": "dbe64c04bc7185b6", + "r": "dbe64c04bc7185b6", + "digit": false, + "name": true, + "n": 14 + }, + { + "i": 0, + "size": 4, + "c": "56018def605c583a", + "r": "6df16f469c1ab4d1", + "digit": false, + "name": true, + "n": 18 + }, + { + "i": 1, + "size": 2, + "c": "b821d403e41aaaff", + "r": "b821d403e41aaaff", + "digit": false, + "name": true, + "n": 10 + }, + { + "i": 1, + "size": 3, + "c": "30f085740d300e1d", + "r": "8eebae20ffb49862", + "digit": false, + "name": true, + "n": 14 + }, + { + "i": 1, + "size": 4, + "c": "276dd340e53188c6", + "r": "f5973e32249138de", + "digit": false, + "name": true, + "n": 22 + }, + { + "i": 2, + "size": 2, + "c": "788ba58ce0f8ff18", + "r": "9da2a27f3ea7ac32", + "digit": false, + "name": true, + "n": 8 + }, + { + "i": 2, + "size": 3, + "c": "8fca29d0fff9f063", + "r": "1d29319cd27831c2", + "digit": false, + "name": true, + "n": 16 + }, + { + "i": 2, + "size": 4, + "c": "37e34615487ed058", + "r": "11229dedf7c779e4", + "digit": false, + "name": true, + "n": 20 + }, + { + "i": 3, + "size": 2, + "c": "12093ff1c800b92c", + "r": "285db341ce41190d", + "digit": false, + "name": true, + "n": 12 + }, + { + "i": 3, + "size": 3, + "c": "fe555202397f9f9c", + "r": "badcb77d3805aa8c", + "digit": false, + "name": true, + "n": 16 + }, + { + "i": 4, + "size": 2, + "c": "be66deb82e3efd44", + "r": "f620a3d6cc3f4d08", + "digit": false, + "name": true, + "n": 12 + } + ], + "structured": "eddd26191036238d", + "signal_hashes": { + "structured|exact|": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "captured_context|exact|": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false + }, + "identifier_crop": null, + "identifier_region": null, + "landmarks": [ + { + "relation": "above", + "ocr_text": "Action", + "distance_px": 52, + "dx_px": 21, + "dy_px": 48 + }, + { + "relation": "below", + "ocr_text": "Open", + "distance_px": 58, + "dx_px": -2, + "dy_px": -58 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 43, + 968, + 318 + ], + "phash": "fae083ffbc08183c", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_005_expect.png" + }, + { + "kind": "text_present", + "text": "Jane Sample — MRN P1 — DOB 1980-01-01", + "region": null, + "phash": null, + "phash_tolerance": 8, + "timeout_s": 5.0, + "template": null + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_006", + "intent": "click 'New Encounter'", + "action": "click", + "anchor": { + "template": "templates/step_006.png", + "structural": { + "selector": "#new-encounter", + "frame_path": null, + "role": "button", + "name": "New Encounter", + "automation_id": null, + "window_name": null + }, + "region": [ + 34, + 127, + 160, + 64 + ], + "click_point": [ + 114, + 159 + ], + "ocr_text": "New Encounter", + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "911a5096acf288523d50080fd3dd74de", + "band_len": 0, + "tokens": [], + "concats": [], + "structured": "c181cef4a5621cab", + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false + }, + "identifier_crop": null, + "identifier_region": null, + "landmarks": [ + { + "relation": "below", + "ocr_text": "Encounters", + "distance_px": 62, + "dx_px": 34, + "dy_px": -52 + }, + { + "relation": "below", + "ocr_text": "No encounters yet.", + "distance_px": 85, + "dx_px": 24, + "dy_px": -82 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 232, + 696, + 219 + ], + "phash": "ff7fc16a622262c0", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_006_expect.png" + }, + { + "kind": "text_present", + "text": "Encounter Type", + "region": null, + "phash": null, + "phash_tolerance": 8, + "timeout_s": 5.0, + "template": null + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_007", + "intent": "click recorded visual target", + "action": "click", + "anchor": { + "template": "templates/step_007.png", + "structural": { + "selector": "#type-triage", + "frame_path": null, + "role": "button", + "name": "Triage", + "automation_id": null, + "window_name": null + }, + "region": [ + 5, + 182, + 160, + 64 + ], + "click_point": [ + 85, + 214 + ], + "ocr_text": null, + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "911a5096acf288523d50080fd3dd74de", + "band_len": 0, + "tokens": [], + "concats": [], + "structured": "c181cef4a5621cab", + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false + }, + "identifier_crop": null, + "identifier_region": null, + "landmarks": [ + { + "relation": "below", + "ocr_text": "Note", + "distance_px": 71, + "dx_px": 44, + "dy_px": -56 + }, + { + "relation": "above", + "ocr_text": "New Encounter", + "distance_px": 76, + "dx_px": -27, + "dy_px": 71 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 163, + 177, + 102 + ], + "phash": "88c2f2297d2da739", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_007_expect.png" + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_008", + "intent": "click recorded visual target", + "action": "click", + "anchor": { + "template": "templates/step_008.png", + "structural": { + "selector": "#note", + "frame_path": null, + "role": "textbox", + "name": "Note", + "automation_id": null, + "window_name": null + }, + "region": [ + 104, + 254, + 480, + 192 + ], + "click_point": [ + 344, + 350 + ], + "ocr_text": null, + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "911a5096acf288523d50080fd3dd74de", + "band_len": 0, + "tokens": [], + "concats": [], + "structured": "c181cef4a5621cab", + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false + }, + "identifier_crop": null, + "identifier_region": null, + "landmarks": [ + { + "relation": "left_of", + "ocr_text": "Consult", + "distance_px": 194, + "dx_px": 138, + "dy_px": 137 + }, + { + "relation": "above", + "ocr_text": "Jane Sample — MRN P1 — DOB 1980-01-01", + "distance_px": 286, + "dx_px": 135, + "dy_px": 252 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 249, + 696, + 202 + ], + "phash": "ff3fd53e7a002a00", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_008_expect.png" + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_009", + "intent": "type ", + "action": "type", + "anchor": null, + "text": "Golden triage booking three months", + "param": "note", + "secret": false, + "field_label": "Note", + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": null, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": null, + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_010", + "intent": "click 'Save Encounter'", + "action": "click", + "anchor": { + "template": "templates/step_010.png", + "structural": { + "selector": "#save-encounter", + "frame_path": null, + "role": "button", + "name": "Save Encounter", + "automation_id": null, + "window_name": null + }, + "region": [ + 54, + 425, + 160, + 64 + ], + "click_point": [ + 134, + 457 + ], + "ocr_text": "Save Encounter", + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "911a5096acf288523d50080fd3dd74de", + "band_len": 0, + "tokens": [], + "concats": [], + "structured": "c181cef4a5621cab", + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false + }, + "identifier_crop": null, + "identifier_region": null, + "landmarks": [ + { + "relation": "above", + "ocr_text": "Note", + "distance_px": 210, + "dx_px": 94, + "dy_px": 188 + }, + { + "relation": "above", + "ocr_text": "Consult", + "distance_px": 254, + "dx_px": -72, + "dy_px": 244 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 229, + 696, + 56 + ], + "phash": "f80781f8871e9e0f", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_010_expect.png" + }, + { + "kind": "text_present", + "text": "Encounters", + "region": null, + "phash": null, + "phash_tolerance": 8, + "timeout_s": 5.0, + "template": null + } + ], + "effects": [], + "api_binding": null, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + } + ], + "interstitials": [], + "program": null, + "subflows": {}, + "data_sources": {}, + "manifest": { + "schema_version": 2, + "content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "file_hashes": { + "templates/layout_fingerprint.json": "1e07a218d3cbbe592419e702af84049e04c308ee3e1c1d78444a0637847355e5", + "templates/step_000.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", + "templates/step_000_expect.png": "29e54a82c2f7df3554d2487d9bad748fc0abd86191416d39343c1eb866c486d1", + "templates/step_001_expect.png": "e2e203b8bbc4bf0a31aebd56a1303077243a3ff602708bbe9eae46d45460ebdf", + "templates/step_002.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", + "templates/step_002_expect.png": "68a0aa31d3b7fba1139c05d729f49252174481dfca5a8693cb5b6440f8976fe6", + "templates/step_003_expect.png": "3068277f51d8dfbfd1ba50b31afee93e76dcacb67b11d4610b6dcdf681597eed", + "templates/step_004.png": "d0082e004cf2a2c03668ca1c6630001eda69bdcf169d05d58839dcbddbc56773", + "templates/step_004_expect.png": "230b56796f24b36637d77ba395e6031bf39cbfab898da61c1c41f23f1b57e396", + "templates/step_005.png": "e38e9760b48c63a08e6618b2624c6796620ce58b5f7d7a2ff63f678aa25bb3e2", + "templates/step_005_expect.png": "76696ff4ec85753e45b5378638fa7c19f4f7fddb1cf35ee99cf6baee11844803", + "templates/step_006.png": "97568daf732ecb6109d858dd09cdcf78b031830c819b6f4b6a50ae60a72ada10", + "templates/step_006_expect.png": "d0e310e05830227867e94a9b288e6265fa28c375558d58555e79bfb002095134", + "templates/step_007.png": "7f6817a19ffe49b31a05a70a23f3fcdb2a71b93b3f4ec6a7b997126b4e0ff16c", + "templates/step_007_expect.png": "ac9ee10ba2354bca0db66fbf3bf93ca80b62a650d3f19e8b71dcc6038a4d057f", + "templates/step_008.png": "b6b06e1ed6155ed74899d0a42bf23df672bf930bfb6f830ab69e6d89ca6fedd3", + "templates/step_008_expect.png": "d1f13cae697465c2ec07310adc38d7780f7d7c0146257679b7c559716b992a31", + "templates/step_010.png": "31193461982dc5b438be9e459f1ce17f2b5dca4109c206428c7d8135bf60643a", + "templates/step_010_expect.png": "5fcb6891641b02953b9baeaa75581a3a9fa1db6c7bd39d432f1d4d06d04c8856" + }, + "provenance": { + "compiler_version": "2.3.0", + "source_recording_sha256": null, + "compiler_config_sha256": "43f5f0d9a4d87c9637138dc24dcf8a163094ab400b760cee8c2567a0760be695", + "created_at": "2026-10-24T19:14:58.653368+00:00", + "policy_name": null, + "certified": false, + "certification_status": null, + "certified_at": null, + "expires_at": null, + "certification_invalidated_at": null, + "certification_invalidation_reason": null, + "governed_authorization_template": null + }, + "encrypted": false + } +} \ No newline at end of file diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py new file mode 100644 index 0000000000..810400521c --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py @@ -0,0 +1,79 @@ +"""Generated by openadapt-flow. Human-readable rendering of +workflow 'golden-triage' — for code review only; the replayer +executes workflow.json, not this file.""" + +WORKFLOW_NAME = 'golden-triage' +RECORDING_ID = '39761205fe29461eab814e2d202d6f29' +PARAMS = {'note': 'Golden triage booking three months'} # param -> example/default value + + +def run(flow, params=PARAMS): + # step_000: click recorded visual target [reversible] + # landmark: 'Sign in to MockMed' (above, 130px) + # landmark: 'Username' (left_of, 132px) + # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_000.png', click_point=(214, 195), region=(134, 163, 160, 64)) + # expect region_stable region=(17, 145, 394, 126) phash='e060e8e01f0f2f9f' (tol 16) + + # step_001: type 'nurse.demo' [reversible] + flow.type_text('nurse.demo') + # expect region_stable region=(27, 156, 147, 76) phash='c3c969c2d23cbc36' (tol 16) + # expect text_present text='nurse.demo' + + # step_002: click recorded visual target [reversible] + # landmark: 'Sign In' (left_of, 112px) + # landmark: 'Password' (left_of, 132px) + flow.click(template='templates/step_002.png', click_point=(214, 264), region=(134, 232, 160, 64)) + # expect region_stable region=(17, 145, 394, 169) phash='e0e01e3c7c1f2fe0' (tol 16) + + # step_003: type 'mockmed-demo-pass' [reversible] + flow.type_text('mockmed-demo-pass') + # expect region_stable region=(26, 229, 159, 69) phash='c2c1cdc9dec1a8b6' (tol 16) + + # step_004: click 'Sign In' [reversible] + # landmark: 'Password' (above, 95px) + # landmark: 'nurse.demo' (above, 130px) + flow.click(template='templates/step_004.png', click_point=(119, 324), region=(39, 292, 160, 64), ocr_text='Sign In') + # expect region_stable region=(0, 87, 968, 314) phash='f7f038e0e868ec68' (tol 16) + # expect text_present text='Sam Specimen' + + # step_005: click 'Open' [reversible] + # landmark: 'Action' (above, 52px) + # landmark: 'Open' (below, 58px) + # identity: armed via PHI-free salted-hash template (6 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_005.png', click_point=(775, 186), region=(695, 154, 160, 64), ocr_text='Open') + # expect region_stable region=(0, 43, 968, 318) phash='fae083ffbc08183c' (tol 16) + # expect text_present text='Jane Sample — MRN P1 — DOB 1980-01-01' + + # step_006: click 'New Encounter' [reversible] + # landmark: 'Encounters' (below, 62px) + # landmark: 'No encounters yet.' (below, 85px) + # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_006.png', click_point=(114, 159), region=(34, 127, 160, 64), ocr_text='New Encounter') + # expect region_stable region=(0, 232, 696, 219) phash='ff7fc16a622262c0' (tol 16) + # expect text_present text='Encounter Type' + + # step_007: click recorded visual target [reversible] + # landmark: 'Note' (below, 71px) + # landmark: 'New Encounter' (above, 76px) + # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_007.png', click_point=(85, 214), region=(5, 182, 160, 64)) + # expect region_stable region=(0, 163, 177, 102) phash='88c2f2297d2da739' (tol 16) + + # step_008: click recorded visual target [reversible] + # landmark: 'Consult' (left_of, 194px) + # landmark: 'Jane Sample — MRN P1 — DOB 1980-01-01' (above, 286px) + # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_008.png', click_point=(344, 350), region=(104, 254, 480, 192)) + # expect region_stable region=(0, 249, 696, 202) phash='ff3fd53e7a002a00' (tol 16) + + # step_009: type [reversible] + flow.type_text(params['note']) + + # step_010: click 'Save Encounter' [irreversible] + # landmark: 'Note' (above, 210px) + # landmark: 'Consult' (above, 254px) + # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_010.png', click_point=(134, 457), region=(54, 425, 160, 64), ocr_text='Save Encounter') + # expect region_stable region=(0, 229, 696, 56) phash='f80781f8871e9e0f' (tol 16) + # expect text_present text='Encounters' diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json b/packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json new file mode 100644 index 0000000000..a8afcc6364 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json @@ -0,0 +1,741 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#tasks" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14", + "steps/step_005_before.png": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14" + }, + "environment": { + "platform": "linux", + "playwright": "1.64.1" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [], + "effect_journal": [], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'" + ], + "intent": "click 'Open'", + "observed_texts": [ + "MockMed", + "Clinical demo — all data is fake", + "Referral Tasks", + "Patient", + "Reason", + "Priority", + "Action", + "Pat Placeholder", + "Orthopedics intake", + "Low", + "Open", + "Robin Redacted", + "Neurology referral", + "Medium", + "Casey Control", + "Endocrine consult", + "Drew Dataset", + "Physio assessment", + "Jane Sample", + "Knee pain referral", + "High", + "Alex Testcase", + "Cardiology follow-up", + "Sam Specimen", + "Dermatology consult" + ], + "outcome": "halt", + "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 0.99) but its surrounding text does not match the recorded target's — expected '', observed 'Pat PlaceholderOrthopedics intakeLow' (coverage 0.00) — refusing to act; run aborted", + "state_id": "step_005" + }, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 9 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", + "result_index": 0, + "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", + "result_index": 2, + "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 11 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": false, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 0.99) but its surrounding text does not match the recorded target's — expected '', observed 'Pat PlaceholderOrthopedics intakeLow' (coverage 0.00) — refusing to act; run aborted", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 0.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Pat PlaceholderOrthopedics intakeLow", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "mismatch" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": { + "confidence": 0.995, + "elapsed_ms": "", + "point": [ + 777, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": { + "code": "identity_conflict", + "detector_input_sha256": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14", + "stage": "identity_verification" + }, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 3 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "REJECTED_POLICY", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "call": "cancel_guarded_keyboard" + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json b/packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json new file mode 100644 index 0000000000..e65e113ae7 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json @@ -0,0 +1,734 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#tasks" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1", + "steps/step_005_before.png": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1" + }, + "environment": { + "platform": "linux", + "playwright": "1.64.1" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [], + "effect_journal": [], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'" + ], + "intent": "click 'Open'", + "observed_texts": [ + "MockMed", + "Clinical demo — all data is fake", + "Referral Tasks", + "Patient", + "Reason", + "Priority", + "Action", + "Taylor Duplicate", + "Knee pain referral", + "High", + "Open", + "Jane Sample", + "Alex Testcase", + "Cardiology follow-up", + "Medium", + "Sam Specimen", + "Dermatology consult", + "Low" + ], + "outcome": "halt", + "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Taylor DuplicateKnee pain referralHigh' (coverage 0.00) — refusing to act; run aborted", + "state_id": "step_005" + }, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 9 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", + "result_index": 0, + "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", + "result_index": 2, + "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 11 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": false, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Taylor DuplicateKnee pain referralHigh' (coverage 0.00) — refusing to act; run aborted", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 0.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Taylor DuplicateKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "mismatch" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": { + "confidence": 0.999, + "elapsed_ms": "", + "point": [ + 777, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": { + "code": "identity_conflict", + "detector_input_sha256": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1", + "stage": "identity_verification" + }, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 3 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "REJECTED_POLICY", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "call": "cancel_guarded_keyboard" + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json b/packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json new file mode 100644 index 0000000000..d986ee2b62 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json @@ -0,0 +1,730 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#tasks" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10", + "steps/step_005_before.png": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10" + }, + "environment": { + "platform": "linux", + "playwright": "1.64.1" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [], + "effect_journal": [], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'" + ], + "intent": "click 'Open'", + "observed_texts": [ + "MockMed", + "Clinical demo — all data is fake", + "Referral Tasks", + "Patient", + "Reason", + "Priority", + "Action", + "Alex Testcase", + "Cardiology follow-up", + "Medium", + "Open", + "Sam Specimen", + "Dermatology consult", + "Low" + ], + "outcome": "halt", + "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", + "state_id": "step_005" + }, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 9 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", + "result_index": 0, + "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", + "result_index": 2, + "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 11 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": false, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 0.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Alex TestcaseCardiology follow-upMedium", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "mismatch" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 775, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": { + "code": "identity_conflict", + "detector_input_sha256": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10", + "stage": "identity_verification" + }, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 3 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "REJECTED_POLICY", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "call": "cancel_guarded_keyboard" + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_modal.json b/packages/flow/tests/golden_runs/baselines/mockmed_modal.json new file mode 100644 index 0000000000..720413e043 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_modal.json @@ -0,0 +1,1261 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#encounter" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_005_before.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_006_after.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", + "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_007_after.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", + "steps/step_007_before.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", + "steps/step_008_after.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", + "steps/step_008_before.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", + "steps/step_009_after.png": "5cab0fd7bacf22db87e424fb5d11478e8e0e436d831d7bf47aeebf827708032a", + "steps/step_009_before.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", + "steps/step_010_after.png": "e2b19443d9e3aab0ba865578116a73947ba8a973d0458cca144c4239ec88fc7f", + "steps/step_010_before.png": "493c9ad4fc4e8ffbdb8d0f8db10fda32ad5645fdaf3cee58a2149177371872ef" + }, + "environment": { + "platform": "linux", + "playwright": "1.64.1" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [ + { + "attempt_state": "delivered", + "effects": [], + "intent": "click 'Save Encounter'", + "may_need_undo": true, + "position": 11, + "status": "unknown", + "step_id": "step_010", + "undo_id": null + } + ], + "effect_journal": [ + { + "approved_unverified": false, + "attempt_state": "delivered", + "collateral_reconciliation_actions": 0, + "consequential": true, + "effect_verified": null, + "intended_effect_contract_hashes": [], + "intent": "click 'Save Encounter'", + "observed_at": null, + "observed_effect": "unknown", + "step_id": "step_010", + "verification_performed": false + } + ], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'", + "click 'Open'", + "click 'New Encounter'", + "click recorded visual target", + "click recorded visual target", + "type " + ], + "intent": "click 'Save Encounter'", + "observed_texts": [ + "MockMed", + "Clinical demo —- all data is fake", + "Jane Sample — MRN P1 — DOB 1980-01-01", + "New Encounter", + "Encounter Type", + "Triage", + "Consult", + "Note", + "Golden triage booking three months", + "Survey", + "Before saving, please rate your experience with", + "MockMed today.", + "Maybe later", + "Save Encounter" + ], + "outcome": "halt", + "reason": "Postconditions failed for step 'step_010' (click 'Save Encounter'): expected screen state not reached (semantic drift) — failed: region_stable region=(0, 229, 696, 56) — run aborted", + "state_id": "step_010" + }, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 16 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", + "result_index": 0, + "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", + "result_index": 2, + "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f1bf5232224f4712713aaa98b0829338ade16ccb31cfeeb85478c20979cfbc13", + "result_index": 6, + "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "5e431b3af5511f4247712a25b31f132a7941847776d868538f5fdf42c4fc0267", + "result_index": 6, + "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "b729d202ac50c922dfc33ae952f4cbb0eae3a5673501a75eb7a9e859c44ec56f", + "result_index": 7, + "step_contract_sha256": "094990618971380c5d7ad0d802cb8b7fcb30ae4d216df6a2b0cd401883cb5b67", + "step_index": 7, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "ce73e998bb3089d35cdffe12030fc58a177f94cacfc0527db6913750c6260d64", + "result_index": 8, + "step_contract_sha256": "4e06e5799eee27ea75a2b2771b30c69302d9dc98cfa6fd86012f149fcde770d2", + "step_index": 8, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "b1b605cc937f012e7bc7734465f55fd8b99129646b2053f4ca79e6f47630f623", + "result_index": 9, + "step_contract_sha256": "0d8dee0302ab7bff3f02cf90ed448ce68b6bc63e766b71a259ce5ae7ee12af68", + "step_index": 9, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f4bd81dab3bcda3ee22a9070c6b00ce7c7d449cc5438781e03037ccd67b824b2", + "result_index": 10, + "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", + "step_index": 10, + "verdict": "refuted", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "5020fabe218ee38bc028999f9916d61471fd3f51f783202177b1bf23b0e3f366", + "result_index": 10, + "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", + "step_index": 10, + "verdict": "refuted", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane SampleKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 775, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_006_after.png", + "api_fallback": null, + "before_png": "steps/step_006_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'New Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 114, + 159 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_006", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_007_after.png", + "api_fallback": null, + "before_png": "steps/step_007_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 85, + 214 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_007", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_008_after.png", + "api_fallback": null, + "before_png": "steps/step_008_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 344, + 350 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_008", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_009_after.png", + "api_fallback": null, + "before_png": "steps/step_009_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type ", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_009", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "guarded_coordinate", + "after_png": "steps/step_010_after.png", + "api_fallback": null, + "before_png": "steps/step_010_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "guarded_coordinate_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Postconditions failed for step 'step_010' (click 'Save Encounter'): expected screen state not reached (semantic drift) — failed: region_stable region=(0, 229, 696, 56) — run aborted", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Save Encounter'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": false, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 134, + 457 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_010", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 7 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "RECONCILIATION_REQUIRED", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 775, + 186 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 114, + 159 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 85, + 214 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 344, + 350 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "Golden triage booking three months" + ], + "call": "type_text" + }, + { + "call": "cancel_pending_structural_guards" + }, + { + "args": [ + 134, + 457 + ], + "call": "arm_guarded_coordinate" + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "args": [ + 134, + 457 + ], + "call": "act_guarded_coordinate", + "kwargs": { + "double": false, + "expected_frame_sha256": "493c9ad4fc4e8ffbdb8d0f8db10fda32ad5645fdaf3cee58a2149177371872ef" + } + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_pass.json b/packages/flow/tests/golden_runs/baselines/mockmed_pass.json new file mode 100644 index 0000000000..c46682575f --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_pass.json @@ -0,0 +1,1228 @@ +{ + "app_state": { + "banner": "Encounter saved — Golden triage booking three months", + "enc_item": "Triage — Golden triage booking three months", + "hash": "#patient/p1" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_005_before.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_006_after.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", + "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_007_after.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", + "steps/step_007_before.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", + "steps/step_008_after.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", + "steps/step_008_before.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", + "steps/step_009_after.png": "5cab0fd7bacf22db87e424fb5d11478e8e0e436d831d7bf47aeebf827708032a", + "steps/step_009_before.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", + "steps/step_010_after.png": "b67a417320935e61795d3fc117b99c301045cfb1cc9cfb1f51515d4ecc36e5b9", + "steps/step_010_before.png": "493c9ad4fc4e8ffbdb8d0f8db10fda32ad5645fdaf3cee58a2149177371872ef" + }, + "environment": { + "platform": "linux", + "playwright": "1.64.1" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [ + { + "attempt_state": "delivered", + "effects": [], + "intent": "click 'Save Encounter'", + "may_need_undo": true, + "position": 11, + "status": "unknown", + "step_id": "step_010", + "undo_id": null + } + ], + "effect_journal": [ + { + "approved_unverified": false, + "attempt_state": "delivered", + "collateral_reconciliation_actions": 0, + "consequential": true, + "effect_verified": null, + "intended_effect_contract_hashes": [], + "intent": "click 'Save Encounter'", + "observed_at": null, + "observed_effect": "unknown", + "step_id": "step_010", + "verification_performed": false + } + ], + "est_model_cost_usd": 0.0, + "execution_completed": true, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "COMPLETED_UNVERIFIED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": null, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": true, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "COMPLETED_UNVERIFIED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", + "result_index": 0, + "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", + "result_index": 2, + "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f1bf5232224f4712713aaa98b0829338ade16ccb31cfeeb85478c20979cfbc13", + "result_index": 6, + "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "5e431b3af5511f4247712a25b31f132a7941847776d868538f5fdf42c4fc0267", + "result_index": 6, + "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "b729d202ac50c922dfc33ae952f4cbb0eae3a5673501a75eb7a9e859c44ec56f", + "result_index": 7, + "step_contract_sha256": "094990618971380c5d7ad0d802cb8b7fcb30ae4d216df6a2b0cd401883cb5b67", + "step_index": 7, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "ce73e998bb3089d35cdffe12030fc58a177f94cacfc0527db6913750c6260d64", + "result_index": 8, + "step_contract_sha256": "4e06e5799eee27ea75a2b2771b30c69302d9dc98cfa6fd86012f149fcde770d2", + "step_index": 8, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "b1b605cc937f012e7bc7734465f55fd8b99129646b2053f4ca79e6f47630f623", + "result_index": 9, + "step_contract_sha256": "0d8dee0302ab7bff3f02cf90ed448ce68b6bc63e766b71a259ce5ae7ee12af68", + "step_index": 9, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f4bd81dab3bcda3ee22a9070c6b00ce7c7d449cc5438781e03037ccd67b824b2", + "result_index": 10, + "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "5020fabe218ee38bc028999f9916d61471fd3f51f783202177b1bf23b0e3f366", + "result_index": 10, + "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane SampleKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 775, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_006_after.png", + "api_fallback": null, + "before_png": "steps/step_006_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'New Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 114, + 159 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_006", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_007_after.png", + "api_fallback": null, + "before_png": "steps/step_007_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 85, + 214 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_007", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_008_after.png", + "api_fallback": null, + "before_png": "steps/step_008_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 344, + 350 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_008", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_009_after.png", + "api_fallback": null, + "before_png": "steps/step_009_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type ", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_009", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "guarded_coordinate", + "after_png": "steps/step_010_after.png", + "api_fallback": null, + "before_png": "steps/step_010_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "guarded_coordinate_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Save Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 134, + 457 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_010", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 8 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": true, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "COMPLETED_UNVERIFIED", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 775, + 186 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 114, + 159 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 85, + 214 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 344, + 350 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "Golden triage booking three months" + ], + "call": "type_text" + }, + { + "call": "cancel_pending_structural_guards" + }, + { + "args": [ + 134, + 457 + ], + "call": "arm_guarded_coordinate" + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "args": [ + 134, + 457 + ], + "call": "act_guarded_coordinate", + "kwargs": { + "double": false, + "expected_frame_sha256": "493c9ad4fc4e8ffbdb8d0f8db10fda32ad5645fdaf3cee58a2149177371872ef" + } + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json b/packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json new file mode 100644 index 0000000000..d3068c014d --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json @@ -0,0 +1,1649 @@ +{ + "app_state": { + "banner": "Encounter saved — Golden triage booking three months", + "enc_item": "Triage — Golden triage booking three months", + "hash": "#patient/p1" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_005_before.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_006_after.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", + "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_007_after.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", + "steps/step_007_before.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", + "steps/step_008_after.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", + "steps/step_008_before.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", + "steps/step_009_after.png": "5cab0fd7bacf22db87e424fb5d11478e8e0e436d831d7bf47aeebf827708032a", + "steps/step_009_before.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", + "steps/step_010_after.png": "b67a417320935e61795d3fc117b99c301045cfb1cc9cfb1f51515d4ecc36e5b9", + "steps/step_010_before.png": "493c9ad4fc4e8ffbdb8d0f8db10fda32ad5645fdaf3cee58a2149177371872ef" + }, + "environment": { + "platform": "linux", + "playwright": "1.64.1" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [ + { + "attempt_state": "delivered", + "effects": [], + "intent": "click 'Save Encounter'", + "may_need_undo": true, + "position": 11, + "status": "unknown", + "step_id": "step_010", + "undo_id": null + } + ], + "effect_journal": [ + { + "approved_unverified": false, + "attempt_state": "delivered", + "collateral_reconciliation_actions": 0, + "consequential": true, + "effect_verified": null, + "intended_effect_contract_hashes": [], + "intent": "click 'Save Encounter'", + "observed_at": null, + "observed_effect": "unknown", + "step_id": "step_010", + "verification_performed": false + } + ], + "est_model_cost_usd": 0.0, + "execution_completed": true, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "COMPLETED_UNVERIFIED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": null, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": true, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "COMPLETED_UNVERIFIED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", + "result_index": 0, + "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", + "result_index": 2, + "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f1bf5232224f4712713aaa98b0829338ade16ccb31cfeeb85478c20979cfbc13", + "result_index": 6, + "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "5e431b3af5511f4247712a25b31f132a7941847776d868538f5fdf42c4fc0267", + "result_index": 6, + "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "b729d202ac50c922dfc33ae952f4cbb0eae3a5673501a75eb7a9e859c44ec56f", + "result_index": 7, + "step_contract_sha256": "094990618971380c5d7ad0d802cb8b7fcb30ae4d216df6a2b0cd401883cb5b67", + "step_index": 7, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "ce73e998bb3089d35cdffe12030fc58a177f94cacfc0527db6913750c6260d64", + "result_index": 8, + "step_contract_sha256": "4e06e5799eee27ea75a2b2771b30c69302d9dc98cfa6fd86012f149fcde770d2", + "step_index": 8, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "b1b605cc937f012e7bc7734465f55fd8b99129646b2053f4ca79e6f47630f623", + "result_index": 9, + "step_contract_sha256": "0d8dee0302ab7bff3f02cf90ed448ce68b6bc63e766b71a259ce5ae7ee12af68", + "step_index": 9, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f4bd81dab3bcda3ee22a9070c6b00ce7c7d449cc5438781e03037ccd67b824b2", + "result_index": 10, + "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "5020fabe218ee38bc028999f9916d61471fd3f51f783202177b1bf23b0e3f366", + "result_index": 10, + "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": "dom", + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 214, + 195 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 214, + 195 + ], + "region": [ + 49, + 177, + 330, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 214, + 264 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 214, + 264 + ], + "region": [ + 49, + 246, + 330, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 119, + 324 + ], + "region": [ + 49, + 304, + 140, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane SampleKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 776, + 186 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 776, + 186 + ], + "region": [ + 731, + 168, + 90, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_006_after.png", + "api_fallback": null, + "before_png": "steps/step_006_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'New Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 114, + 159 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 114, + 159 + ], + "region": [ + 24, + 139, + 180, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_006", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_007_after.png", + "api_fallback": null, + "before_png": "steps/step_007_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 85, + 214 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 85, + 214 + ], + "region": [ + 25, + 195, + 120, + 38 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_007", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_008_after.png", + "api_fallback": null, + "before_png": "steps/step_008_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 344, + 350 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 344, + 350 + ], + "region": [ + 24, + 281, + 640, + 138 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_008", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_009_after.png", + "api_fallback": null, + "before_png": "steps/step_009_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type ", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_009", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_010_after.png", + "api_fallback": null, + "before_png": "steps/step_010_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Save Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 134, + 457 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 134, + 457 + ], + "region": [ + 24, + 437, + 220, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_010", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "structural": 8 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": true, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "COMPLETED_UNVERIFIED", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Username", + "role": "textbox", + "selector": "#username", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 214, + 195 + ], + "region": [ + 49, + 177, + 330, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Password", + "role": "textbox", + "selector": "#password", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 214, + 264 + ], + "region": [ + 49, + 246, + 330, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Sign In", + "role": "button", + "selector": "#signin", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 119, + 324 + ], + "region": [ + 49, + 304, + 140, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Open", + "role": "button", + "selector": "#open-p1", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 776, + 186 + ], + "region": [ + 731, + 168, + 90, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "New Encounter", + "role": "button", + "selector": "#new-encounter", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 114, + 159 + ], + "region": [ + 24, + 139, + 180, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Triage", + "role": "button", + "selector": "#type-triage", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 85, + 214 + ], + "region": [ + 25, + 195, + 120, + 38 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Note", + "role": "textbox", + "selector": "#note", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 344, + 350 + ], + "region": [ + 24, + 281, + 640, + 138 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + "Golden triage booking three months" + ], + "call": "type_text" + }, + { + "call": "cancel_pending_structural_guards" + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Save Encounter", + "role": "button", + "selector": "#save-encounter", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 134, + 457 + ], + "region": [ + 24, + 437, + 220, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_rename.json b/packages/flow/tests/golden_runs/baselines/mockmed_rename.json new file mode 100644 index 0000000000..cdd5ca21d8 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_rename.json @@ -0,0 +1,1740 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#encounter" + }, + "artifacts": { + "heals/step_005/heal.json": "b3c63d6961d5f6f1391833932995154a4267cae3f76448c1f577d662416d73a8", + "heals/step_005/patch.json": "7c8471d5cc3bd48e0e5cf5fc4d8cf65e1c9576d6ffe78a9448484edda699fc44", + "heals/step_005/screen.png": "d75e763a05baa64e18034d9ea887a98a66e4a16164be5367e2252e4033d88731", + "heals/step_005/template.png": "eca2fd5d3137dacda8ef89755450480df3a5ad42d93b83664ef6cf7de83c622c", + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "d75e763a05baa64e18034d9ea887a98a66e4a16164be5367e2252e4033d88731", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_005_before.png": "d75e763a05baa64e18034d9ea887a98a66e4a16164be5367e2252e4033d88731", + "steps/step_006_after.png": "c4f30586984dccdfe5307a1724c7d15d7b355dff0e59150eb15b2831658acbeb", + "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_007_after.png": "b2d57f99123791a250bcbfadf0149df94793c5dd82bf7a1809f3a1a2e33e17ef", + "steps/step_007_before.png": "c4f30586984dccdfe5307a1724c7d15d7b355dff0e59150eb15b2831658acbeb", + "steps/step_008_after.png": "3528f600cfa8e08340f46b34cf90bc616162a9bec96fafeb8c1ad4c4423d7aaf", + "steps/step_008_before.png": "b2d57f99123791a250bcbfadf0149df94793c5dd82bf7a1809f3a1a2e33e17ef", + "steps/step_009_after.png": "5645293291ecfbc0fad3d7754255c23f64dc82be464e51d041e8811ef7d506cb", + "steps/step_009_before.png": "3528f600cfa8e08340f46b34cf90bc616162a9bec96fafeb8c1ad4c4423d7aaf", + "steps/step_010_after.png": "5645293291ecfbc0fad3d7754255c23f64dc82be464e51d041e8811ef7d506cb", + "steps/step_010_before.png": "5645293291ecfbc0fad3d7754255c23f64dc82be464e51d041e8811ef7d506cb" + }, + "environment": { + "platform": "linux", + "playwright": "1.64.1" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [], + "effect_journal": [ + { + "approved_unverified": false, + "attempt_state": "not_actuated", + "collateral_reconciliation_actions": 0, + "consequential": true, + "effect_verified": null, + "intended_effect_contract_hashes": [], + "intent": "click 'Save Encounter'", + "observed_at": null, + "observed_effect": "unknown", + "step_id": "step_010", + "verification_performed": false + } + ], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'", + "click 'Open'", + "click 'New Encounter'", + "click recorded visual target", + "click recorded visual target", + "type " + ], + "intent": "click 'Save Encounter'", + "observed_texts": [ + "MockMed", + "Clinical demo - all data is fake", + "Jane Sample — MRN P1 — DOB 1980-01-01", + "New Encounter", + "Encounter Type", + "Triage", + "Consult", + "Note", + "Golden triage booking three months", + "Submit Encounter" + ], + "outcome": "halt", + "reason": "Step 'step_010' (click 'Save Encounter') is irreversible but only resolved via the 'geometry' rung — needs human confirmation; refusing to act (v0 policy)", + "state_id": "step_010" + }, + "heal_count": 1, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 16 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "24410a8ac1df39730293e93d498a118ef4336ce7730ec488c97fce730f0b06ff", + "result_index": 0, + "step_contract_sha256": "2ef15ddddf4fd43468beb50a3330e679c54cce1a320d372aeb18de74216216a5", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "ad882f4181fd235011c9380ad0fc728a8fa8ba83e2b369466ebc2ac32bd487f4", + "result_index": 1, + "step_contract_sha256": "fed380c79958900c2ab37ed6ce38a0822294e028e4ef153f0d9820b0f590e8f7", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "68e980eb21229baef57bf7103c4d7c6a20f778a352c805c92e5ce194a967c114", + "result_index": 1, + "step_contract_sha256": "fed380c79958900c2ab37ed6ce38a0822294e028e4ef153f0d9820b0f590e8f7", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "0d468ae59c32c2c452a45a5b0f3f5c6443eaf384d3b6d0e49566635c68a4db71", + "result_index": 1, + "step_contract_sha256": "fed380c79958900c2ab37ed6ce38a0822294e028e4ef153f0d9820b0f590e8f7", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "af3e2bc1028427a348cfc3cc1f4dd09844856d40f4707b14b57d6fd9f725095c", + "result_index": 2, + "step_contract_sha256": "c3ce6eefb4b69abc7c0a76a9b7ffee451cebbe1ced97a36439bd04d4fda220b8", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "41ce9a49b0db2dbcab20b42e3c36050b700a34dcbbf0fb4022a0c0ce3abb52e9", + "result_index": 3, + "step_contract_sha256": "db795513490cc2930b47dae0cda0dff9bb0364bca611e299f687a814b4353b61", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "ead825bf37613d9051147204771058a1cdeefcb4af5d2995ab652f1e4163e9c5", + "result_index": 3, + "step_contract_sha256": "db795513490cc2930b47dae0cda0dff9bb0364bca611e299f687a814b4353b61", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "095670e275e3c41f26642e4bbe132c9bc0be722d2c50f220aaba66ee28ccc2fb", + "result_index": 4, + "step_contract_sha256": "63524cca8c36a11a5931c4f8eee383b4bbef64064f781cf53326e5960ea163e5", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "0dc1f643133c81b3210b56a63341dffd92e887877796bcf8e5d1c49e0abe3dd4", + "result_index": 4, + "step_contract_sha256": "63524cca8c36a11a5931c4f8eee383b4bbef64064f781cf53326e5960ea163e5", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "24d7d6c9d4138777100759818bae19440180da50c5cb0fa2037bd3c8912d67f3", + "result_index": 5, + "step_contract_sha256": "2b2e49f0bcc7ebb05c9638f6255b55a28916eae87b35e88b96783e04c5ee79e5", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "326a9ee440e6c3672b25b2a48cdff0c29b1cbd23db4a0a2f94758acf9c6453ce", + "result_index": 5, + "step_contract_sha256": "2b2e49f0bcc7ebb05c9638f6255b55a28916eae87b35e88b96783e04c5ee79e5", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "ab3cda6afb0d174b2dedffcaf38277dc056144df0a9415f52932ae756aaa406f", + "result_index": 6, + "step_contract_sha256": "5809345d60ae4ec36eb618d1b2fbe2d3cb03cb23ae8413776a7d75482ff8a145", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "85f1d0e74b8608af26017a49992e9a8db7274ae65a65adfb4f66b5f3c88372aa", + "result_index": 6, + "step_contract_sha256": "5809345d60ae4ec36eb618d1b2fbe2d3cb03cb23ae8413776a7d75482ff8a145", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "5729506f7013de76cb84570f82cc1eb92b2bea3512f9156662c0b7d0a3d5648b", + "result_index": 7, + "step_contract_sha256": "3aeb7d6bbab744782cb030b8d07b0a008fbf378606771d4efc2193227ceebd00", + "step_index": 7, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "79dc17bb4fdb8e981b0a640c81720f3b54d01ce15b3043dbaf61d8a416ed5f05", + "result_index": 8, + "step_contract_sha256": "75a3e9a9a40eb435e00e28885abbe61432175947d8b48cdced568c86145ef968", + "step_index": 8, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "9cdfaa65685b485ba97d97b2382d58dc786594a878be6e999dda05a0c89f6b7e", + "result_index": 9, + "step_contract_sha256": "82e95d0cee8f746cc6ac6ed3a5272b481294fdc9fa0b3a0cbf807b016382e5db", + "step_index": 9, + "verdict": "passed", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "b0cbb0ce8386ef0a0a9d84314218976303648a01a9adeb816ed9d933cfd4c9d3", + "result_index": 10, + "step_contract_sha256": "a9c9b5e5643bf268d0b5d41c96f86ee7cd419716a4bd7b80fa6eda6d629636d6", + "step_index": 10, + "verdict": "unverifiable", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "1581875b5d7c48dbb913ce805a66c2673181366b37bfa5f2963d55762ed5180a", + "result_index": 10, + "step_contract_sha256": "a9c9b5e5643bf268d0b5d41c96f86ee7cd419716a4bd7b80fa6eda6d629636d6", + "step_index": 10, + "verdict": "unverifiable", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 775, + 186 + ], + "context_text": "Jane Sample Knee pain referral High", + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 30, + "concats": [ + { + "c": "69675b2937c1909a", + "digit": false, + "i": 0, + "n": 10, + "name": true, + "r": "69675b2937c1909a", + "size": 2 + }, + { + "c": "dbe64c04bc7185b6", + "digit": false, + "i": 0, + "n": 14, + "name": true, + "r": "dbe64c04bc7185b6", + "size": 3 + }, + { + "c": "56018def605c583a", + "digit": false, + "i": 0, + "n": 18, + "name": true, + "r": "6df16f469c1ab4d1", + "size": 4 + }, + { + "c": "b821d403e41aaaff", + "digit": false, + "i": 1, + "n": 10, + "name": true, + "r": "b821d403e41aaaff", + "size": 2 + }, + { + "c": "30f085740d300e1d", + "digit": false, + "i": 1, + "n": 14, + "name": true, + "r": "8eebae20ffb49862", + "size": 3 + }, + { + "c": "276dd340e53188c6", + "digit": false, + "i": 1, + "n": 22, + "name": true, + "r": "f5973e32249138de", + "size": 4 + }, + { + "c": "788ba58ce0f8ff18", + "digit": false, + "i": 2, + "n": 8, + "name": true, + "r": "9da2a27f3ea7ac32", + "size": 2 + }, + { + "c": "8fca29d0fff9f063", + "digit": false, + "i": 2, + "n": 16, + "name": true, + "r": "1d29319cd27831c2", + "size": 3 + }, + { + "c": "37e34615487ed058", + "digit": false, + "i": 2, + "n": 20, + "name": true, + "r": "11229dedf7c779e4", + "size": 4 + }, + { + "c": "12093ff1c800b92c", + "digit": false, + "i": 3, + "n": 12, + "name": true, + "r": "285db341ce41190d", + "size": 2 + }, + { + "c": "fe555202397f9f9c", + "digit": false, + "i": 3, + "n": 16, + "name": true, + "r": "badcb77d3805aa8c", + "size": 3 + }, + { + "c": "be66deb82e3efd44", + "digit": false, + "i": 4, + "n": 12, + "name": true, + "r": "f620a3d6cc3f4d08", + "size": 2 + } + ], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "captured_context|exact|": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "structured|exact|": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5" + }, + "structured": "eddd26191036238d", + "tokens": [ + { + "alpha": true, + "c": "9e8e1645fdec34d0", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "9e8e1645fdec34d0" + }, + { + "alpha": true, + "c": "0d68e18d565ed360", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 6, + "name": true, + "r": "0d68e18d565ed360" + }, + { + "alpha": true, + "c": "6b80bb4112f844a5", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "6b80bb4112f844a5" + }, + { + "alpha": true, + "c": "20338486779884fb", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "4c5b884487197d9d" + }, + { + "alpha": true, + "c": "8a2c79da10756add", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 8, + "name": true, + "r": "8a2c79da10756add" + }, + { + "alpha": true, + "c": "bd8a1dea16c274d2", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "63c0d27e3746e3af" + } + ] + }, + "landmarks": [ + { + "distance_px": 52, + "dx_px": 21, + "dy_px": 48, + "ocr_text": "Action", + "relation": "above" + }, + { + "distance_px": 58, + "dx_px": -2, + "dy_px": -58, + "ocr_text": "Open", + "relation": "below" + } + ], + "ocr_text": "View", + "region": [ + 695, + 154, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Open", + "role": "button", + "selector": "#open-p1", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_005.png" + }, + "old_anchor": { + "click_point": [ + 775, + 186 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 30, + "concats": [ + { + "c": "69675b2937c1909a", + "digit": false, + "i": 0, + "n": 10, + "name": true, + "r": "69675b2937c1909a", + "size": 2 + }, + { + "c": "dbe64c04bc7185b6", + "digit": false, + "i": 0, + "n": 14, + "name": true, + "r": "dbe64c04bc7185b6", + "size": 3 + }, + { + "c": "56018def605c583a", + "digit": false, + "i": 0, + "n": 18, + "name": true, + "r": "6df16f469c1ab4d1", + "size": 4 + }, + { + "c": "b821d403e41aaaff", + "digit": false, + "i": 1, + "n": 10, + "name": true, + "r": "b821d403e41aaaff", + "size": 2 + }, + { + "c": "30f085740d300e1d", + "digit": false, + "i": 1, + "n": 14, + "name": true, + "r": "8eebae20ffb49862", + "size": 3 + }, + { + "c": "276dd340e53188c6", + "digit": false, + "i": 1, + "n": 22, + "name": true, + "r": "f5973e32249138de", + "size": 4 + }, + { + "c": "788ba58ce0f8ff18", + "digit": false, + "i": 2, + "n": 8, + "name": true, + "r": "9da2a27f3ea7ac32", + "size": 2 + }, + { + "c": "8fca29d0fff9f063", + "digit": false, + "i": 2, + "n": 16, + "name": true, + "r": "1d29319cd27831c2", + "size": 3 + }, + { + "c": "37e34615487ed058", + "digit": false, + "i": 2, + "n": 20, + "name": true, + "r": "11229dedf7c779e4", + "size": 4 + }, + { + "c": "12093ff1c800b92c", + "digit": false, + "i": 3, + "n": 12, + "name": true, + "r": "285db341ce41190d", + "size": 2 + }, + { + "c": "fe555202397f9f9c", + "digit": false, + "i": 3, + "n": 16, + "name": true, + "r": "badcb77d3805aa8c", + "size": 3 + }, + { + "c": "be66deb82e3efd44", + "digit": false, + "i": 4, + "n": 12, + "name": true, + "r": "f620a3d6cc3f4d08", + "size": 2 + } + ], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "captured_context|exact|": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "structured|exact|": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5" + }, + "structured": "eddd26191036238d", + "tokens": [ + { + "alpha": true, + "c": "9e8e1645fdec34d0", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "9e8e1645fdec34d0" + }, + { + "alpha": true, + "c": "0d68e18d565ed360", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 6, + "name": true, + "r": "0d68e18d565ed360" + }, + { + "alpha": true, + "c": "6b80bb4112f844a5", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "6b80bb4112f844a5" + }, + { + "alpha": true, + "c": "20338486779884fb", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "4c5b884487197d9d" + }, + { + "alpha": true, + "c": "8a2c79da10756add", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 8, + "name": true, + "r": "8a2c79da10756add" + }, + { + "alpha": true, + "c": "bd8a1dea16c274d2", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "63c0d27e3746e3af" + } + ] + }, + "landmarks": [ + { + "distance_px": 52, + "dx_px": 21, + "dy_px": 48, + "ocr_text": "Action", + "relation": "above" + }, + { + "distance_px": 58, + "dx_px": -2, + "dy_px": -58, + "ocr_text": "Open", + "relation": "below" + } + ], + "ocr_text": "Open", + "region": [ + 695, + 154, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Open", + "role": "button", + "selector": "#open-p1", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_005.png" + }, + "rung_used": "geometry", + "screenshot": "heals/step_005/screen.png", + "step_id": "step_005" + }, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane SampleKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 0.9, + "elapsed_ms": "", + "point": [ + 775, + 186 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_006_after.png", + "api_fallback": null, + "before_png": "steps/step_006_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'New Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 114, + 159 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_006", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_007_after.png", + "api_fallback": null, + "before_png": "steps/step_007_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 85, + 214 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_007", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_008_after.png", + "api_fallback": null, + "before_png": "steps/step_008_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 344, + 350 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_008", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_009_after.png", + "api_fallback": null, + "before_png": "steps/step_009_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type ", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_009", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_010_after.png", + "api_fallback": null, + "before_png": "steps/step_010_before.png", + "delivery_attempted": false, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Step 'step_010' (click 'Save Encounter') is irreversible but only resolved via the 'geometry' rung — needs human confirmation; refusing to act (v0 policy)", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Save Encounter'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": { + "confidence": 0.9, + "elapsed_ms": "", + "point": [ + 134, + 457 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_010", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "geometry": 1, + "template": 6 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "HALTED_BEFORE_EFFECT", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 775, + 186 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 114, + 159 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 85, + 214 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 344, + 350 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "Golden triage booking three months" + ], + "call": "type_text" + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "call": "cancel_guarded_keyboard" + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_sort.json b/packages/flow/tests/golden_runs/baselines/mockmed_sort.json new file mode 100644 index 0000000000..035a65f8c0 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_sort.json @@ -0,0 +1,733 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#tasks" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58", + "steps/step_005_before.png": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58" + }, + "environment": { + "platform": "linux", + "playwright": "1.64.1" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [], + "effect_journal": [], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'" + ], + "intent": "click 'Open'", + "observed_texts": [ + "MockMed", + "Clinical demo — all data is fake", + "Referral Tasks", + "Patient", + "Reason", + "Priority", + "Action", + "Alex Testcase", + "Cardiology follow-up", + "Medium", + "Open", + "Jane Sample", + "Knee pain referral", + "High", + "Sam Specimen", + "Dermatology consult", + "Low" + ], + "outcome": "halt", + "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", + "state_id": "step_005" + }, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 9 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", + "result_index": 0, + "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", + "result_index": 1, + "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", + "result_index": 2, + "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", + "result_index": 3, + "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", + "result_index": 4, + "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", + "result_index": 5, + "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 11 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": false, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 0.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Alex TestcaseCardiology follow-upMedium", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "mismatch" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 775, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": { + "code": "identity_conflict", + "detector_input_sha256": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58", + "stage": "identity_verification" + }, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 3 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "REJECTED_POLICY", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "call": "cancel_guarded_keyboard" + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_theme.json b/packages/flow/tests/golden_runs/baselines/mockmed_theme.json new file mode 100644 index 0000000000..2ce9768da6 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_theme.json @@ -0,0 +1,2721 @@ +{ + "app_state": { + "banner": "Encounter saved — Golden triage booking three months", + "enc_item": "Triage — Golden triage booking three months", + "hash": "#patient/p1" + }, + "artifacts": { + "heals/step_000/heal.json": "bf7aef2794d4e1a56acf5ea0cc9ad61b9de9b464e474f4dbc58a3e29f8f6675d", + "heals/step_000/patch.json": "71cd67799906bf7c592709ae3ae7647a5e27b296994947579d8b31ea910badd8", + "heals/step_000/screen.png": "9e43117c8f5dcc3ba3a5e6eb636f9e736b6c31feaee783d080458d35a162c5e4", + "heals/step_000/template.png": "59e7a505c0762bde07517ef08e419406cd83f7024620b863a3924bcad58f4bf4", + "heals/step_002/heal.json": "9746367158967ae5697fec0528917c8c6076f11c127230cd683e5572eba11e8f", + "heals/step_002/patch.json": "e6809b37b0d857625c24b4bd7e13ec602d2caa85c75468de45763191b78e7725", + "heals/step_002/screen.png": "f3e6efed2eaf69d8e3f7ea4f3f03d6010b6520add327ca0d20cc8fe15b3304c0", + "heals/step_002/template.png": "59e7a505c0762bde07517ef08e419406cd83f7024620b863a3924bcad58f4bf4", + "heals/step_004/heal.json": "9d05a48d13cd8badbc0abaf75555a616bb92833615b2752c13be4fdf0b776c5c", + "heals/step_004/patch.json": "6fd04b3d1545c31ae069240fab0ad3b6d51d98f1785b2bb77b54a253df353ebd", + "heals/step_004/screen.png": "d4b2458d828ecadf3a558090f4d9079b8dffcda558e9a7a709d699802d950195", + "heals/step_004/template.png": "c6e8bd05f344066f595bf57ac4a1523be2b6153cf71d57b2ca27807ca872f0bb", + "heals/step_005/heal.json": "7137bd2e2e8d2601e1c182a67d396711c55806a85a728d4272a70242fc273576", + "heals/step_005/patch.json": "88b554680e2a36a5d93a532c6e3c995be7fedf8857988409502a0512e04e2655", + "heals/step_005/screen.png": "0cf5a5011ed7f8fa456398dc5e2a9ae679813decd68ce9e78ff7dd4f79006269", + "heals/step_005/template.png": "330ed0efd8adf2c753d080188513c917969d8aafbeed14d0da248694d371e1c4", + "heals/step_006/heal.json": "3d96fbc952e98e64398a24bb35838e5a7ab22258cfe9640a41894e4d63b6ffa9", + "heals/step_006/patch.json": "36f0e22ed46b0fd824f77418cc844368b6377a4794c0133111e42117f21fa720", + "heals/step_006/screen.png": "1b9ebdb9d885ba46909fc8fb32fccb362380b5b576e49e1e91bb1224c36a0d01", + "heals/step_006/template.png": "0d18d8e6f13f243c09ce02ef3646a6544c11bd7136e053a305782526a17c4bed", + "heals/step_007/heal.json": "6ff0d96a003a79c1e0019e0b53e52c35b13e9761f2c4ef4617f2686e1a5a6479", + "heals/step_007/patch.json": "8443f1cc75d1f3ae8850deba5f17fa14376464d7534464ed1bc3ee033b02aa66", + "heals/step_007/screen.png": "1bce149701c11c2c6595aacd14fedddf710cea19b2772071698557866ceb6b56", + "heals/step_007/template.png": "ce94517fe2c30adc2379a09c8e7fc0569bd06e5eb63bd24cdc401254dc5463da", + "heals/step_008/heal.json": "24550df84b0787d029dc93107c4ef75b56630720a4382f6ea3c6d1e3cdee1585", + "heals/step_008/patch.json": "fd9a4e1164b2422356e1a1f2967150712f1f8ee7d0f68725d37b08a06ceb833f", + "heals/step_008/screen.png": "d58dd3834cf115d70078e55f7e9e8ba30407db4c939154d309977df41dd76912", + "heals/step_008/template.png": "13148f2b0f7acf7cf845361f49c4bce75d767eced0aff8f6f833db483bcf9ea8", + "heals/step_010/heal.json": "e43dbbcddc14c4740fb69901d17ac8e2c7bf2649dffee7b25883da9985fe921b", + "heals/step_010/patch.json": "9ad14f25582935468fa2900a75b4808ebbd072bce75454bea90e8d64be94aa48", + "heals/step_010/screen.png": "62ac72d7b812e699194ef0cb7cc5dca4c59687e48d7c95809050240c3f3ae2fb", + "heals/step_010/template.png": "588067ceff3b713e39d281edfa82ccbe9ec3bf9e3bd79a0a9e494b61051512cc", + "steps/step_000_after.png": "3bc795168abc8711dbd98e9b00d2f281769a04f17f00fa26bb736e6b98c81f11", + "steps/step_000_before.png": "9e43117c8f5dcc3ba3a5e6eb636f9e736b6c31feaee783d080458d35a162c5e4", + "steps/step_001_after.png": "f3e6efed2eaf69d8e3f7ea4f3f03d6010b6520add327ca0d20cc8fe15b3304c0", + "steps/step_001_before.png": "3bc795168abc8711dbd98e9b00d2f281769a04f17f00fa26bb736e6b98c81f11", + "steps/step_002_after.png": "cce1a9982d9ab4aee39eb450454413232eec5c3231793376e55f1db972ff2665", + "steps/step_002_before.png": "f3e6efed2eaf69d8e3f7ea4f3f03d6010b6520add327ca0d20cc8fe15b3304c0", + "steps/step_003_after.png": "d4b2458d828ecadf3a558090f4d9079b8dffcda558e9a7a709d699802d950195", + "steps/step_003_before.png": "cce1a9982d9ab4aee39eb450454413232eec5c3231793376e55f1db972ff2665", + "steps/step_004_after.png": "0cf5a5011ed7f8fa456398dc5e2a9ae679813decd68ce9e78ff7dd4f79006269", + "steps/step_004_before.png": "d4b2458d828ecadf3a558090f4d9079b8dffcda558e9a7a709d699802d950195", + "steps/step_005_after.png": "1b9ebdb9d885ba46909fc8fb32fccb362380b5b576e49e1e91bb1224c36a0d01", + "steps/step_005_before.png": "0cf5a5011ed7f8fa456398dc5e2a9ae679813decd68ce9e78ff7dd4f79006269", + "steps/step_006_after.png": "1bce149701c11c2c6595aacd14fedddf710cea19b2772071698557866ceb6b56", + "steps/step_006_before.png": "1b9ebdb9d885ba46909fc8fb32fccb362380b5b576e49e1e91bb1224c36a0d01", + "steps/step_007_after.png": "d58dd3834cf115d70078e55f7e9e8ba30407db4c939154d309977df41dd76912", + "steps/step_007_before.png": "1bce149701c11c2c6595aacd14fedddf710cea19b2772071698557866ceb6b56", + "steps/step_008_after.png": "278f25f264525b4b68d93edc080b33a538f564ac90443b4c97c70ce48741672f", + "steps/step_008_before.png": "d58dd3834cf115d70078e55f7e9e8ba30407db4c939154d309977df41dd76912", + "steps/step_009_after.png": "eb3dcbc766977b9c098da061c640498e113ff8b4c0a86b878f2db99ffdf33d0a", + "steps/step_009_before.png": "278f25f264525b4b68d93edc080b33a538f564ac90443b4c97c70ce48741672f", + "steps/step_010_after.png": "0ebcd362b90dcc7373c13b8b570272facdf3dad65666174144f388fcf7613f9e", + "steps/step_010_before.png": "62ac72d7b812e699194ef0cb7cc5dca4c59687e48d7c95809050240c3f3ae2fb" + }, + "environment": { + "platform": "linux", + "playwright": "1.64.1" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [ + { + "attempt_state": "delivered", + "effects": [], + "intent": "click 'Save Encounter'", + "may_need_undo": true, + "position": 11, + "status": "unknown", + "step_id": "step_010", + "undo_id": null + } + ], + "effect_journal": [ + { + "approved_unverified": false, + "attempt_state": "delivered", + "collateral_reconciliation_actions": 0, + "consequential": true, + "effect_verified": null, + "intended_effect_contract_hashes": [], + "intent": "click 'Save Encounter'", + "observed_at": null, + "observed_effect": "unknown", + "step_id": "step_010", + "verification_performed": false + } + ], + "est_model_cost_usd": 0.0, + "execution_completed": true, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "COMPLETED_UNVERIFIED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": null, + "heal_count": 8, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": true, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "COMPLETED_UNVERIFIED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "0012cc7dab464d2bda06aad7074c16fc67e24003eb485a10f45342b874b5563b", + "result_index": 0, + "step_contract_sha256": "b73ab43f962fd78edc8552b17c995a49ee4df914e6ed4bcab3e83adeadfc0296", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "c05b0c4ec91e430a40d834fac8c0efa9ea3ab8d91579c0a1a330454b3e253011", + "result_index": 1, + "step_contract_sha256": "7db2c57ede1c11a8b54dcea8ffa671ada17f1570b87299b8072d028bf7ce0bbc", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "35c7a20e3c1fb123a0a70f12f05e99e8eb58fe8b5424bc4ee94c56093d964208", + "result_index": 1, + "step_contract_sha256": "7db2c57ede1c11a8b54dcea8ffa671ada17f1570b87299b8072d028bf7ce0bbc", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "bc0f848c079bc69cf1db66862a17f8d792757be50240960663c9fc842d58e746", + "result_index": 1, + "step_contract_sha256": "7db2c57ede1c11a8b54dcea8ffa671ada17f1570b87299b8072d028bf7ce0bbc", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "2d9242772e6e034135a2603f46c7c817f58dedc93ea190afd44d07636531c798", + "result_index": 2, + "step_contract_sha256": "f6dd97183cf5c3a25d3da79e4d013d64e82fd65e9e87821e0d8c06087d0b6772", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "d42211c47d6087809121a2a6ce9342809a0b6c6adb5f72e66b3b1fb46ea59dc5", + "result_index": 3, + "step_contract_sha256": "48e381571d821f2df6146c8045092c5f40b5dcd339985477c416d49065675dd3", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "8d7720a455a1872aba933a5d0123544d01f66aa4ec0662258950044c5506c855", + "result_index": 3, + "step_contract_sha256": "48e381571d821f2df6146c8045092c5f40b5dcd339985477c416d49065675dd3", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "42f752d02043921afd9974c53d595d07af94c804b8c87f8065d2e44f0e4a117c", + "result_index": 4, + "step_contract_sha256": "9442103e8d0384049e1966c87d31ce59792a36a61f0a780fa9a8a344b5983191", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "701dde0b1a4df305cd969da278fe6d8df56bd9a55aaeb4568fbeba61ff079dc1", + "result_index": 4, + "step_contract_sha256": "9442103e8d0384049e1966c87d31ce59792a36a61f0a780fa9a8a344b5983191", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "999fee233dd8c4d32d9a2a7c2e0577f097ce067bf5422a5bdc417dbc15ab5706", + "result_index": 5, + "step_contract_sha256": "0f3f3fc0a9e4d010017fe2b258c44f38004485047498f13659b243c61759a7d7", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "76288bf96854bc9bcc2e5e7fa39e49bde748fe4cc97435ebd225cf15bcb2e9da", + "result_index": 5, + "step_contract_sha256": "0f3f3fc0a9e4d010017fe2b258c44f38004485047498f13659b243c61759a7d7", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "df52da3e3177966f6c4746091759640e6e6029b3ed9a714c3112c261a8e97837", + "result_index": 6, + "step_contract_sha256": "79803ce0beb0dad2488b74ab60beb142654e19f43683ef256295f0bff094d566", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "29eda2007bc40d6a940e3cbbcd048dd0d678f95f60e2318b1f5f541e6387fde7", + "result_index": 6, + "step_contract_sha256": "79803ce0beb0dad2488b74ab60beb142654e19f43683ef256295f0bff094d566", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "3128b052b3e747aba16d3ea173d3e080df540245a5de74223063f35d412dcd4f", + "result_index": 7, + "step_contract_sha256": "613e37e116ab42029f42e3a9583c030cee27fa220fcacbb1b038a74610b3dbb6", + "step_index": 7, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "24bb35c6dc63834332a481acf64c96481d9685ec4e68eaf9d7eeec4f64f7d825", + "result_index": 8, + "step_contract_sha256": "1c6c7dd0d2bcff3227331af88af0ff778888adfcf58e60191c9615413a5c5d1a", + "step_index": 8, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "cdb5af77f85f9007c1838791cce7c0c5f7b8135de3d0063d32fe7623dc575921", + "result_index": 9, + "step_contract_sha256": "f31a2184e778d9608575479adda41e1aafb292bbc9c5dce5f74a6f3203545907", + "step_index": 9, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f3ace5d64ecdc21a521ea8fa5159b3237fbbd2cf66d9a151cccf3ec8eb0af50b", + "result_index": 10, + "step_contract_sha256": "26fbb91828d18d81ccd467fb0207482eae03b6e84e7e462feeff3d86a55ebd69", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "3f5268f243361f8b9e56b394276051a2409846a1d07c8a4b813b281a8fc915d7", + "result_index": 10, + "step_contract_sha256": "26fbb91828d18d81ccd467fb0207482eae03b6e84e7e462feeff3d86a55ebd69", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 214, + 195 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc,casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d" + }, + "structured": "5b3e20fe152a1c42", + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 130, + "dx_px": 76, + "dy_px": 106, + "ocr_text": "Sign in to MockMed", + "relation": "above" + }, + { + "distance_px": 132, + "dx_px": 129, + "dy_px": 29, + "ocr_text": "Username", + "relation": "left_of" + } + ], + "ocr_text": null, + "region": [ + 134, + 163, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Username", + "role": "textbox", + "selector": "#username", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_000.png" + }, + "old_anchor": { + "click_point": [ + 214, + 195 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc,casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", + "structured|normalized|unicode_nfkc,collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", + "structured|normalized|unicode_nfkc,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d" + }, + "structured": "5b3e20fe152a1c42", + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 130, + "dx_px": 76, + "dy_px": 106, + "ocr_text": "Sign in to MockMed", + "relation": "above" + }, + { + "distance_px": 132, + "dx_px": 129, + "dy_px": 29, + "ocr_text": "Username", + "relation": "left_of" + } + ], + "ocr_text": null, + "region": [ + 134, + 163, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Username", + "role": "textbox", + "selector": "#username", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_000.png" + }, + "rung_used": "geometry", + "screenshot": "heals/step_000/screen.png", + "step_id": "step_000" + }, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 0.9, + "elapsed_ms": "", + "point": [ + 214, + 195 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 214, + 264 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": null, + "landmarks": [ + { + "distance_px": 112, + "dx_px": 94, + "dy_px": -60, + "ocr_text": "Sign In", + "relation": "left_of" + }, + { + "distance_px": 132, + "dx_px": 129, + "dy_px": 30, + "ocr_text": "Password", + "relation": "left_of" + } + ], + "ocr_text": null, + "region": [ + 134, + 232, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Password", + "role": "textbox", + "selector": "#password", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_002.png" + }, + "old_anchor": { + "click_point": [ + 214, + 264 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": null, + "landmarks": [ + { + "distance_px": 112, + "dx_px": 94, + "dy_px": -60, + "ocr_text": "Sign In", + "relation": "left_of" + }, + { + "distance_px": 132, + "dx_px": 129, + "dy_px": 30, + "ocr_text": "Password", + "relation": "left_of" + } + ], + "ocr_text": null, + "region": [ + 134, + 232, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Password", + "role": "textbox", + "selector": "#password", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_002.png" + }, + "rung_used": "geometry", + "screenshot": "heals/step_002/screen.png", + "step_id": "step_002" + }, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 0.9, + "elapsed_ms": "", + "point": [ + 214, + 264 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 120, + 324 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": null, + "landmarks": [ + { + "distance_px": 95, + "dx_px": 34, + "dy_px": 89, + "ocr_text": "Password", + "relation": "above" + }, + { + "distance_px": 130, + "dx_px": 19, + "dy_px": 129, + "ocr_text": "nurse.demo", + "relation": "above" + } + ], + "ocr_text": "Sign In", + "region": [ + 40, + 292, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Sign In", + "role": "button", + "selector": "#signin", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_004.png" + }, + "old_anchor": { + "click_point": [ + 119, + 324 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": null, + "landmarks": [ + { + "distance_px": 95, + "dx_px": 34, + "dy_px": 89, + "ocr_text": "Password", + "relation": "above" + }, + { + "distance_px": 130, + "dx_px": 19, + "dy_px": 129, + "ocr_text": "nurse.demo", + "relation": "above" + } + ], + "ocr_text": "Sign In", + "region": [ + 39, + 292, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Sign In", + "role": "button", + "selector": "#signin", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_004.png" + }, + "rung_used": "ocr", + "screenshot": "heals/step_004/screen.png", + "step_id": "step_004" + }, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 120, + 324 + ], + "rung": "ocr", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 777, + 186 + ], + "context_text": "Jane Sample Knee pain referral High", + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 30, + "concats": [ + { + "c": "69675b2937c1909a", + "digit": false, + "i": 0, + "n": 10, + "name": true, + "r": "69675b2937c1909a", + "size": 2 + }, + { + "c": "dbe64c04bc7185b6", + "digit": false, + "i": 0, + "n": 14, + "name": true, + "r": "dbe64c04bc7185b6", + "size": 3 + }, + { + "c": "56018def605c583a", + "digit": false, + "i": 0, + "n": 18, + "name": true, + "r": "6df16f469c1ab4d1", + "size": 4 + }, + { + "c": "b821d403e41aaaff", + "digit": false, + "i": 1, + "n": 10, + "name": true, + "r": "b821d403e41aaaff", + "size": 2 + }, + { + "c": "30f085740d300e1d", + "digit": false, + "i": 1, + "n": 14, + "name": true, + "r": "8eebae20ffb49862", + "size": 3 + }, + { + "c": "276dd340e53188c6", + "digit": false, + "i": 1, + "n": 22, + "name": true, + "r": "f5973e32249138de", + "size": 4 + }, + { + "c": "788ba58ce0f8ff18", + "digit": false, + "i": 2, + "n": 8, + "name": true, + "r": "9da2a27f3ea7ac32", + "size": 2 + }, + { + "c": "8fca29d0fff9f063", + "digit": false, + "i": 2, + "n": 16, + "name": true, + "r": "1d29319cd27831c2", + "size": 3 + }, + { + "c": "37e34615487ed058", + "digit": false, + "i": 2, + "n": 20, + "name": true, + "r": "11229dedf7c779e4", + "size": 4 + }, + { + "c": "12093ff1c800b92c", + "digit": false, + "i": 3, + "n": 12, + "name": true, + "r": "285db341ce41190d", + "size": 2 + }, + { + "c": "fe555202397f9f9c", + "digit": false, + "i": 3, + "n": 16, + "name": true, + "r": "badcb77d3805aa8c", + "size": 3 + }, + { + "c": "be66deb82e3efd44", + "digit": false, + "i": 4, + "n": 12, + "name": true, + "r": "f620a3d6cc3f4d08", + "size": 2 + } + ], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "captured_context|exact|": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "structured|exact|": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5" + }, + "structured": "eddd26191036238d", + "tokens": [ + { + "alpha": true, + "c": "9e8e1645fdec34d0", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "9e8e1645fdec34d0" + }, + { + "alpha": true, + "c": "0d68e18d565ed360", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 6, + "name": true, + "r": "0d68e18d565ed360" + }, + { + "alpha": true, + "c": "6b80bb4112f844a5", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "6b80bb4112f844a5" + }, + { + "alpha": true, + "c": "20338486779884fb", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "4c5b884487197d9d" + }, + { + "alpha": true, + "c": "8a2c79da10756add", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 8, + "name": true, + "r": "8a2c79da10756add" + }, + { + "alpha": true, + "c": "bd8a1dea16c274d2", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "63c0d27e3746e3af" + } + ] + }, + "landmarks": [ + { + "distance_px": 52, + "dx_px": 21, + "dy_px": 48, + "ocr_text": "Action", + "relation": "above" + }, + { + "distance_px": 58, + "dx_px": -2, + "dy_px": -58, + "ocr_text": "Open", + "relation": "below" + } + ], + "ocr_text": "Open", + "region": [ + 697, + 154, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Open", + "role": "button", + "selector": "#open-p1", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_005.png" + }, + "old_anchor": { + "click_point": [ + 775, + 186 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 30, + "concats": [ + { + "c": "69675b2937c1909a", + "digit": false, + "i": 0, + "n": 10, + "name": true, + "r": "69675b2937c1909a", + "size": 2 + }, + { + "c": "dbe64c04bc7185b6", + "digit": false, + "i": 0, + "n": 14, + "name": true, + "r": "dbe64c04bc7185b6", + "size": 3 + }, + { + "c": "56018def605c583a", + "digit": false, + "i": 0, + "n": 18, + "name": true, + "r": "6df16f469c1ab4d1", + "size": 4 + }, + { + "c": "b821d403e41aaaff", + "digit": false, + "i": 1, + "n": 10, + "name": true, + "r": "b821d403e41aaaff", + "size": 2 + }, + { + "c": "30f085740d300e1d", + "digit": false, + "i": 1, + "n": 14, + "name": true, + "r": "8eebae20ffb49862", + "size": 3 + }, + { + "c": "276dd340e53188c6", + "digit": false, + "i": 1, + "n": 22, + "name": true, + "r": "f5973e32249138de", + "size": 4 + }, + { + "c": "788ba58ce0f8ff18", + "digit": false, + "i": 2, + "n": 8, + "name": true, + "r": "9da2a27f3ea7ac32", + "size": 2 + }, + { + "c": "8fca29d0fff9f063", + "digit": false, + "i": 2, + "n": 16, + "name": true, + "r": "1d29319cd27831c2", + "size": 3 + }, + { + "c": "37e34615487ed058", + "digit": false, + "i": 2, + "n": 20, + "name": true, + "r": "11229dedf7c779e4", + "size": 4 + }, + { + "c": "12093ff1c800b92c", + "digit": false, + "i": 3, + "n": 12, + "name": true, + "r": "285db341ce41190d", + "size": 2 + }, + { + "c": "fe555202397f9f9c", + "digit": false, + "i": 3, + "n": 16, + "name": true, + "r": "badcb77d3805aa8c", + "size": 3 + }, + { + "c": "be66deb82e3efd44", + "digit": false, + "i": 4, + "n": 12, + "name": true, + "r": "f620a3d6cc3f4d08", + "size": 2 + } + ], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "captured_context|exact|": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", + "captured_context|normalized|unicode_nfkc,collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "captured_context|normalized|unicode_nfkc,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", + "structured|exact|": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", + "structured|normalized|unicode_nfkc,collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", + "structured|normalized|unicode_nfkc,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5" + }, + "structured": "eddd26191036238d", + "tokens": [ + { + "alpha": true, + "c": "9e8e1645fdec34d0", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "9e8e1645fdec34d0" + }, + { + "alpha": true, + "c": "0d68e18d565ed360", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 6, + "name": true, + "r": "0d68e18d565ed360" + }, + { + "alpha": true, + "c": "6b80bb4112f844a5", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "6b80bb4112f844a5" + }, + { + "alpha": true, + "c": "20338486779884fb", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "4c5b884487197d9d" + }, + { + "alpha": true, + "c": "8a2c79da10756add", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 8, + "name": true, + "r": "8a2c79da10756add" + }, + { + "alpha": true, + "c": "bd8a1dea16c274d2", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "63c0d27e3746e3af" + } + ] + }, + "landmarks": [ + { + "distance_px": 52, + "dx_px": 21, + "dy_px": 48, + "ocr_text": "Action", + "relation": "above" + }, + { + "distance_px": 58, + "dx_px": -2, + "dy_px": -58, + "ocr_text": "Open", + "relation": "below" + } + ], + "ocr_text": "Open", + "region": [ + 695, + 154, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Open", + "role": "button", + "selector": "#open-p1", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_005.png" + }, + "rung_used": "ocr", + "screenshot": "heals/step_005/screen.png", + "step_id": "step_005" + }, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane SampleKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 777, + 186 + ], + "rung": "ocr", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_006_after.png", + "api_fallback": null, + "before_png": "steps/step_006_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 113, + 159 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" + }, + "structured": "c181cef4a5621cab", + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 62, + "dx_px": 34, + "dy_px": -52, + "ocr_text": "Encounters", + "relation": "below" + }, + { + "distance_px": 85, + "dx_px": 24, + "dy_px": -82, + "ocr_text": "No encounters yet.", + "relation": "below" + } + ], + "ocr_text": "New Encounter", + "region": [ + 33, + 127, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "New Encounter", + "role": "button", + "selector": "#new-encounter", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_006.png" + }, + "old_anchor": { + "click_point": [ + 114, + 159 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" + }, + "structured": "c181cef4a5621cab", + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 62, + "dx_px": 34, + "dy_px": -52, + "ocr_text": "Encounters", + "relation": "below" + }, + { + "distance_px": 85, + "dx_px": 24, + "dy_px": -82, + "ocr_text": "No encounters yet.", + "relation": "below" + } + ], + "ocr_text": "New Encounter", + "region": [ + 34, + 127, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "New Encounter", + "role": "button", + "selector": "#new-encounter", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_006.png" + }, + "rung_used": "ocr", + "screenshot": "heals/step_006/screen.png", + "step_id": "step_006" + }, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'New Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 113, + 159 + ], + "rung": "ocr", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_006", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_007_after.png", + "api_fallback": null, + "before_png": "steps/step_007_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 85, + 214 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" + }, + "structured": "c181cef4a5621cab", + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 71, + "dx_px": 44, + "dy_px": -56, + "ocr_text": "Note", + "relation": "below" + }, + { + "distance_px": 76, + "dx_px": -27, + "dy_px": 71, + "ocr_text": "New Encounter", + "relation": "above" + } + ], + "ocr_text": "Triage", + "region": [ + 5, + 182, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Triage", + "role": "button", + "selector": "#type-triage", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_007.png" + }, + "old_anchor": { + "click_point": [ + 85, + 214 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" + }, + "structured": "c181cef4a5621cab", + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 71, + "dx_px": 44, + "dy_px": -56, + "ocr_text": "Note", + "relation": "below" + }, + { + "distance_px": 76, + "dx_px": -27, + "dy_px": 71, + "ocr_text": "New Encounter", + "relation": "above" + } + ], + "ocr_text": null, + "region": [ + 5, + 182, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Triage", + "role": "button", + "selector": "#type-triage", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_007.png" + }, + "rung_used": "geometry", + "screenshot": "heals/step_007/screen.png", + "step_id": "step_007" + }, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 0.9, + "elapsed_ms": "", + "point": [ + 85, + 214 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_007", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_008_after.png", + "api_fallback": null, + "before_png": "steps/step_008_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 344, + 350 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" + }, + "structured": "c181cef4a5621cab", + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 194, + "dx_px": 138, + "dy_px": 137, + "ocr_text": "Consult", + "relation": "left_of" + }, + { + "distance_px": 286, + "dx_px": 135, + "dy_px": 252, + "ocr_text": "Jane Sample — MRN P1 — DOB 1980-01-01", + "relation": "above" + } + ], + "ocr_text": null, + "region": [ + 104, + 254, + 480, + 192 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Note", + "role": "textbox", + "selector": "#note", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_008.png" + }, + "old_anchor": { + "click_point": [ + 344, + 350 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" + }, + "structured": "c181cef4a5621cab", + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 194, + "dx_px": 138, + "dy_px": 137, + "ocr_text": "Consult", + "relation": "left_of" + }, + { + "distance_px": 286, + "dx_px": 135, + "dy_px": 252, + "ocr_text": "Jane Sample — MRN P1 — DOB 1980-01-01", + "relation": "above" + } + ], + "ocr_text": null, + "region": [ + 104, + 254, + 480, + 192 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Note", + "role": "textbox", + "selector": "#note", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_008.png" + }, + "rung_used": "geometry", + "screenshot": "heals/step_008/screen.png", + "step_id": "step_008" + }, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 0.881, + "elapsed_ms": "", + "point": [ + 344, + 350 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_008", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_009_after.png", + "api_fallback": null, + "before_png": "steps/step_009_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type ", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_009", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "guarded_coordinate", + "after_png": "steps/step_010_after.png", + "api_fallback": null, + "before_png": "steps/step_010_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "guarded_coordinate_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 134, + 457 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" + }, + "structured": "c181cef4a5621cab", + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 210, + "dx_px": 94, + "dy_px": 188, + "ocr_text": "Note", + "relation": "above" + }, + { + "distance_px": 254, + "dx_px": -72, + "dy_px": 244, + "ocr_text": "Consult", + "relation": "above" + } + ], + "ocr_text": "Save Encounter", + "region": [ + 54, + 425, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Save Encounter", + "role": "button", + "selector": "#save-encounter", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_010.png" + }, + "old_anchor": { + "click_point": [ + 134, + 457 + ], + "context_text": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "911a5096acf288523d50080fd3dd74de", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", + "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", + "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" + }, + "structured": "c181cef4a5621cab", + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 210, + "dx_px": 94, + "dy_px": 188, + "ocr_text": "Note", + "relation": "above" + }, + { + "distance_px": 254, + "dx_px": -72, + "dy_px": 244, + "ocr_text": "Consult", + "relation": "above" + } + ], + "ocr_text": "Save Encounter", + "region": [ + 54, + 425, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Save Encounter", + "role": "button", + "selector": "#save-encounter", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_010.png" + }, + "rung_used": "ocr", + "screenshot": "heals/step_010/screen.png", + "step_id": "step_010" + }, + "identity": { + "abstain_reason": null, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Save Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 134, + 457 + ], + "rung": "ocr", + "structural_handle": null + }, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_010", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "geometry": 4, + "ocr": 4 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": true, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "COMPLETED_UNVERIFIED", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 214, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 214, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 120, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 777, + 186 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 113, + 159 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 85, + 214 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 344, + 350 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "Golden triage booking three months" + ], + "call": "type_text" + }, + { + "call": "cancel_pending_structural_guards" + }, + { + "args": [ + 134, + 457 + ], + "call": "arm_guarded_coordinate" + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "args": [ + 134, + 457 + ], + "call": "act_guarded_coordinate", + "kwargs": { + "double": false, + "expected_frame_sha256": "62ac72d7b812e699194ef0cb7cc5dca4c59687e48d7c95809050240c3f3ae2fb" + } + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} From 35525aa4b44321e1c8c506edf25768964a3b5ebb Mon Sep 17 00:00:00 2001 From: abrichr Date: Sat, 24 Oct 2026 23:21:54 -0400 Subject: [PATCH 06/17] Revert "ci(flow): TEMPORARY write the first Linux golden baselines" The baselines are committed; golden runs now compare. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/packages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 19fef4986d..a8fc4e0005 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -512,7 +512,6 @@ jobs: # results; OPENADAPT_GOLDEN_WRITE=1 regenerates them (upload below). env: OPENADAPT_GOLDEN_OUT: runs/golden - OPENADAPT_GOLDEN_WRITE: "1" # TEMPORARY: first Linux baselines; removed before review run: | pytest -vv --durations=20 tests/golden_runs \ --basetemp=runs/ci-goldens --junitxml=runs/goldens-junit.xml From ea8ab27db7d51e8b972857535a024c86eef9e5f7 Mon Sep 17 00:00:00 2001 From: abrichr Date: Sun, 25 Oct 2026 00:11:32 -0400 Subject: [PATCH 07/17] fix(scripts): verify_moved_code allows docstrings and nested-type declarations A protocol attribute such as Optional[dict[str, Any]] was read as an assignment because its dump contains 'value='. Statements now record whether they only declare (an annotation with no value, or a docstring) when they are parsed. Co-Authored-By: Claude Opus 5.5 --- scripts/verify_moved_code.py | 21 +++++++++++++++------ tests/test_verify_moved_code.py | 9 ++++++++- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/scripts/verify_moved_code.py b/scripts/verify_moved_code.py index 6b1e64cd20..33b0b0b535 100644 --- a/scripts/verify_moved_code.py +++ b/scripts/verify_moved_code.py @@ -49,6 +49,9 @@ class Unit: lineno: int dump: str is_function: bool + # A statement that documents or declares but does nothing at run time: + # a docstring, or an annotation with no value (a protocol attribute). + is_declaration: bool = False @dataclass @@ -138,7 +141,16 @@ def walk(body: list[ast.stmt], prefix: str) -> None: walk(node.body, name + ".") else: label = f"{prefix}" - out.append(Unit(file, label, node.lineno, _dump(node), False)) + declaration = ( + isinstance(node, ast.AnnAssign) and node.value is None + ) or ( + isinstance(node, ast.Expr) + and isinstance(node.value, ast.Constant) + and isinstance(node.value.value, str) + ) + out.append( + Unit(file, label, node.lineno, _dump(node), False, declaration) + ) walk(tree.body, "") return out, bases @@ -256,11 +268,8 @@ def verify(root: Path, base: str, search: list[str]) -> Result: if base_units[unit.dump] > 0: base_units[unit.dump] -= 1 # moved here from a changed file continue - # A protocol attribute declaration (``backend: Backend``) is a stub. - declaration = ( - unit.dump.startswith("AnnAssign(") and "value=" not in unit.dump - ) - if unit.dump in stubs or unit.dump in reexports or declaration: + # Protocol attribute declarations and docstrings are not logic. + if unit.dump in stubs or unit.dump in reexports or unit.is_declaration: result.new_stubs.append(unit) else: result.new_bodies.append(unit) diff --git a/tests/test_verify_moved_code.py b/tests/test_verify_moved_code.py index bd919dbf77..091f0f541f 100644 --- a/tests/test_verify_moved_code.py +++ b/tests/test_verify_moved_code.py @@ -60,13 +60,16 @@ def run(self): ''' MIXIN = """\ -from typing import TYPE_CHECKING, Protocol +from typing import TYPE_CHECKING, Any, Optional, Protocol LIMIT = 3 class _IdentityHost(Protocol): + "What the identity checks read from the host." + backend: str + frames: Optional[dict[str, Any]] def run(self) -> bool: ... @@ -82,6 +85,8 @@ def helper(x): class IdentityChecks(_Base): + "Identity checks." + def _check(self): return len(self.backend) > 0 """ @@ -127,6 +132,8 @@ def test_a_pure_move_into_a_mixin_passes(repo: Path) -> None: ) stubs = {unit.qualname for unit in result.new_stubs} assert {"_IdentityHost.run"} <= stubs + # Docstrings and attribute declarations, even with nested types, are stubs. + assert len(result.new_stubs) == 5 assert verify_moved_code.main(["--root", str(repo), "--base", "HEAD"]) == 0 From 42169045d67f07d1eea38dafcd7a7dfb3a3e9b5b Mon Sep 17 00:00:00 2001 From: abrichr Date: Sun, 25 Oct 2026 00:48:46 -0400 Subject: [PATCH 08/17] fix(scripts): verify_moved_code flags patches of imports that moved code reads A moved method reads module-level names from its new module, so a test that patches old_module.name (an import such as resolve, or a constant) no longer reaches it. The verifier now tracks the names each moved function reads and flags a test that patches one through the old module without also patching it where the moved code reads it. Found by the first large replayer move, where a scroll-readiness test patched runtime.replayer.resolve. Co-Authored-By: Claude Opus 5.5 --- scripts/verify_moved_code.py | 101 +++++++++++++++++++++++++++----- tests/test_verify_moved_code.py | 39 +++++++++++- 2 files changed, 123 insertions(+), 17 deletions(-) diff --git a/scripts/verify_moved_code.py b/scripts/verify_moved_code.py index 33b0b0b535..d048f3bdcf 100644 --- a/scripts/verify_moved_code.py +++ b/scripts/verify_moved_code.py @@ -52,6 +52,8 @@ class Unit: # A statement that documents or declares but does nothing at run time: # a docstring, or an annotation with no value (a protocol attribute). is_declaration: bool = False + # Module-level names a function reads (it looks them up in its module). + reads: frozenset[str] = frozenset() @dataclass @@ -120,8 +122,20 @@ def walk(body: list[ast.stmt], prefix: str) -> None: if _is_import(node): continue if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)): + reads = frozenset( + sub.id + for sub in ast.walk(node) + if isinstance(sub, ast.Name) and isinstance(sub.ctx, ast.Load) + ) out.append( - Unit(file, prefix + node.name, node.lineno, _dump(node), True) + Unit( + file, + prefix + node.name, + node.lineno, + _dump(node), + True, + reads=reads, + ) ) elif isinstance(node, ast.ClassDef): name = prefix + node.name @@ -208,7 +222,8 @@ def verify(root: Path, base: str, search: list[str]) -> Result: head_by_dump.setdefault(unit.dump, []).append(unit) base_units: Counter[str] = Counter() - moved_globals: dict[str, set[str]] = {} + # (old module, name) -> modules whose moved code now reads that name. + moved_reads: dict[tuple[str, str], set[str]] = {} for path in changed: old = base_source(root, base, path) if old is None: @@ -220,16 +235,25 @@ def verify(root: Path, base: str, search: list[str]) -> Result: if new_file.is_file(): new_units, new_bases = units(new_file.read_text(encoding="utf-8"), path) new_here = {u.dump for u in new_units} + old_module = _module_name(path) + module_level = _module_level_names(old) for unit in old_units: if unit.dump not in head_units: result.missing.append(unit) elif unit.dump not in new_here: base_units[unit.dump] += 1 # left this file; may land elsewhere result.moved += 1 - if unit.is_function and "." not in unit.qualname: - module = _module_name(path) - if module: - moved_globals.setdefault(module, set()).add(unit.qualname) + landed = [ + m + for u in head_by_dump.get(unit.dump, []) + if u.file != path and (m := _module_name(u.file)) + ] + if old_module and landed: + names = set(unit.reads & module_level) + if unit.is_function and "." not in unit.qualname: + names.add(unit.qualname) + for name in names: + moved_reads.setdefault((old_module, name), set()).update(landed) for cls, old_cls_bases in old_bases.items(): if cls in new_bases and new_bases[cls] != old_cls_bases: result.changed_bases.append( @@ -274,12 +298,53 @@ def verify(root: Path, base: str, search: list[str]) -> Result: else: result.new_bodies.append(unit) - result.stale_patches = stale_patches(root, moved_globals) + result.stale_patches = stale_patches(root, moved_reads) return result -def stale_patches(root: Path, moved: dict[str, set[str]]) -> list[str]: - """Test strings that patch a moved global through its old module path.""" +def _module_level_names(source: str) -> set[str]: + """Names bound at module level: imports, functions, classes, constants.""" + names: set[str] = set() + for node in ast.parse(source).body: + if isinstance(node, (ast.Import, ast.ImportFrom)): + names |= {(a.asname or a.name).split(".")[0] for a in node.names} + elif isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef, ast.ClassDef)): + names.add(node.name) + elif isinstance(node, ast.Assign): + names |= {t.id for t in node.targets if isinstance(t, ast.Name)} + elif isinstance(node, ast.AnnAssign) and isinstance(node.target, ast.Name): + names.add(node.target.id) + return names + + +def _patches(text: str, module: str, name: str) -> list[int]: + """Lines that patch ``module.name``, by dotted string or module alias.""" + lines = [] + pattern = rf"[\"']{re.escape(module)}\.{re.escape(name)}[\"']" + for match in re.finditer(pattern, text): + lines.append(text.count("\n", 0, match.start()) + 1) + parent, _, leaf = module.rpartition(".") + aliases = set(re.findall(rf"import {re.escape(module)} as (\w+)", text)) + aliases |= set( + re.findall(rf"from {re.escape(parent)} import {leaf} as (\w+)", text) + ) + if re.search(rf"from {re.escape(parent)} import {leaf}\b(?! as)", text): + aliases.add(leaf) + for alias in aliases: + for match in re.finditer( + rf"setattr\(\s*{re.escape(alias)}\s*,\s*[\"']{re.escape(name)}[\"']", text + ): + lines.append(text.count("\n", 0, match.start()) + 1) + return lines + + +def stale_patches(root: Path, moved: dict[tuple[str, str], set[str]]) -> list[str]: + """Tests that patch a name through its old module only. + + Moved code reads module-level names from its new module, so a test that + patches ``old.name`` no longer affects it. A test is flagged unless it + also patches the name in every module the moved code now reads it from. + """ if not moved: return [] hits = [] @@ -287,13 +352,17 @@ def stale_patches(root: Path, moved: dict[str, set[str]]) -> list[str]: if ".venv" in path.parts: continue text = path.read_text(encoding="utf-8", errors="replace") - for module, names in moved.items(): - for name in names: - pattern = rf"[\"']{re.escape(module)}\.{re.escape(name)}[\"']" - for match in re.finditer(pattern, text): - line = text.count("\n", 0, match.start()) + 1 - rel = path.relative_to(root).as_posix() - hits.append(f"{rel}:{line}: patches {module}.{name}") + rel = path.relative_to(root).as_posix() + for (old, name), new_modules in sorted(moved.items()): + old_lines = _patches(text, old, name) + if not old_lines: + continue + unpatched = sorted(m for m in new_modules if not _patches(text, m, name)) + if unpatched: + hits.append( + f"{rel}:{old_lines[0]}: patches {old}.{name}; moved code reads " + f"it from {', '.join(unpatched)}" + ) return hits diff --git a/tests/test_verify_moved_code.py b/tests/test_verify_moved_code.py index 091f0f541f..8cdcabe8ac 100644 --- a/tests/test_verify_moved_code.py +++ b/tests/test_verify_moved_code.py @@ -175,6 +175,43 @@ def test_a_patch_through_the_old_module_is_flagged(repo: Path) -> None: result = _verify(repo) assert result.stale_patches == [ - "packages/demo/tests/test_demo.py:2: patches openadapt_demo.replayer.helper" + "packages/demo/tests/test_demo.py:2: patches openadapt_demo.replayer.helper; " + "moved code reads it from openadapt_demo.replay.identity" ] assert verify_moved_code.main(["--root", str(repo), "--base", "HEAD"]) == 1 + + +def test_a_patched_import_the_moved_code_reads_is_flagged_until_retargeted( + tmp_path: Path, +) -> None: + """The case the first real move hit: moved code reads an imported name.""" + _git(tmp_path, "init", "-q") + _git(tmp_path, "config", "user.email", "t@example.com") + _git(tmp_path, "config", "user.name", "t") + base = BASE.replace("return len(self.backend) > 0", "return len(os.sep) > 0") + _write(tmp_path, f"{PKG}/replayer.py", base) + _write(tmp_path, f"{PKG}/__init__.py", "") + _git(tmp_path, "add", "-A") + _git(tmp_path, "commit", "-q", "-m", "base") + _write(tmp_path, f"{PKG}/replayer.py", MOVED_REPLAYER) + _write(tmp_path, f"{PKG}/replay/__init__.py", "") + mixin = MIXIN.replace("LIMIT = 3", "import os\n\nLIMIT = 3", 1).replace( + "return len(self.backend) > 0", "return len(os.sep) > 0" + ) + _write(tmp_path, f"{PKG}/replay/identity.py", mixin) + test = ( + "def test_x(monkeypatch):\n" + ' monkeypatch.setattr("openadapt_demo.replayer.os", None)\n' + ) + _write(tmp_path, "packages/demo/tests/test_demo.py", test) + + assert _verify(tmp_path).stale_patches == [ + "packages/demo/tests/test_demo.py:2: patches openadapt_demo.replayer.os; " + "moved code reads it from openadapt_demo.replay.identity" + ] + + retargeted = test + ( + ' monkeypatch.setattr("openadapt_demo.replay.identity.os", None)\n' + ) + _write(tmp_path, "packages/demo/tests/test_demo.py", retargeted) + assert _verify(tmp_path).stale_patches == [] From 71ea6191e578147f4ea9e89cbd3693590cea8357 Mon Sep 17 00:00:00 2001 From: abrichr Date: Tue, 3 Nov 2026 14:36:36 -0500 Subject: [PATCH 09/17] test: ratchet budgets and import-surface pins at main's current sizes Budgets are each file's line count on main at 213f3d9fe. The snapshot adds the names and Replayer methods main gained (276 methods); none were removed. --- packages/flow/docs/design/DECOMPOSITION.md | 18 ++++---- .../flow/tests/fixtures/import_surface.json | 45 +++++++++++++++++++ 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/packages/flow/docs/design/DECOMPOSITION.md b/packages/flow/docs/design/DECOMPOSITION.md index 1d1323ca46..f0c78549af 100644 --- a/packages/flow/docs/design/DECOMPOSITION.md +++ b/packages/flow/docs/design/DECOMPOSITION.md @@ -594,16 +594,16 @@ that: | File | Line budget | |---|---:| -| `packages/flow/openadapt_flow/runtime/replayer.py` | 18300 | -| `packages/flow/openadapt_flow/__main__.py` | 11970 | -| `packages/flow/openadapt_flow/qualification.py` | 5775 | -| `packages/flow/openadapt_flow/ir.py` | 5798 | -| `packages/desktop/openadapt_desktop/dispatch.py` | 5686 | -| `packages/capture/openadapt_capture/recorder.py` | 4532 | -| `packages/flow/openadapt_flow/interactive_recorder.py` | 4524 | -| `packages/flow/openadapt_flow/runtime/durable/attended.py` | 4271 | +| `packages/flow/openadapt_flow/runtime/replayer.py` | 19303 | +| `packages/flow/openadapt_flow/__main__.py` | 12708 | +| `packages/flow/openadapt_flow/qualification.py` | 5776 | +| `packages/flow/openadapt_flow/ir.py` | 6286 | +| `packages/desktop/openadapt_desktop/dispatch.py` | 6404 | +| `packages/capture/openadapt_capture/recorder.py` | 4792 | +| `packages/flow/openadapt_flow/interactive_recorder.py` | 4603 | +| `packages/flow/openadapt_flow/runtime/durable/attended.py` | 4301 | | `packages/flow/openadapt_flow/terminal_verification_v2.py` | 3663 | -| `packages/flow/openadapt_flow/backends/playwright_backend.py` | 3636 | +| `packages/flow/openadapt_flow/backends/playwright_backend.py` | 5172 | ## 7. Coordination with work in flight diff --git a/packages/flow/tests/fixtures/import_surface.json b/packages/flow/tests/fixtures/import_surface.json index 506ff8734b..2fa6270931 100644 --- a/packages/flow/tests/fixtures/import_surface.json +++ b/packages/flow/tests/fixtures/import_surface.json @@ -9,6 +9,8 @@ "PC_STRUCTURAL_TEMPLATE_THRESHOLD", "PC_TEMPLATE_SEARCH_PAD", "PC_TEMPLATE_THRESHOLD", + "PIXEL_CENSUS_OCR_MAX_SIMILARITY", + "PIXEL_CENSUS_OCR_MIN_CONFIDENCE", "PROGRAM_MAX_DEPTH", "PROGRAM_MAX_STEPS", "READBACK_DEADLINE_MARGIN_S", @@ -17,12 +19,14 @@ "SCROLL_BUDGET_FACTOR", "SCROLL_POSITION_SLACK_FRACTION", "SECRET_ENV_PREFIX", + "StepResult", "_DIALOG_WAIT_S", "_DIRECT_TARGET_RUNGS", "_DURABLE_RESUME_AUTHORITY", "_DeliveryResultT", "_FIELD_CHECK_LIMIT", "_FIELD_VALUE_LIMIT", + "_FORM_GUARD_SETTLE_S", "_GraphStepContext", "_MAX_FRESH_ACTUATION_REACQUISITIONS", "_MAX_SERVER_RESPONSES", @@ -34,6 +38,8 @@ "_PIXEL_RECHECK_MIN_PIXELS", "_PIXEL_RECHECK_REOBSERVES", "_ProgramHalt", + "_REMOTE_HOVER_JITTER_PX", + "_ROW_DATE_PATTERNS", "_SCROLL_HANDOFF_ACTIONS", "_WebFormApprovalView", "_all_workflow_steps", @@ -44,8 +50,10 @@ "_loop_iterations_from_checkpoints", "_pipeline_safe_verifier", "_record_loop_iteration", + "_row_dates", "_scroll_target_positioned", "_uniform_page_scale", + "_within_hover_jitter", "better_identity_read", "effect_endpoint_scope", "effect_field_checks", @@ -58,6 +66,7 @@ "_account_result", "_act", "_act_answering_dialog", + "_act_closing_surface", "_act_read", "_act_scroll", "_act_without_dialog", @@ -71,6 +80,7 @@ "_api_identity_refusal", "_api_request_pointer_field_path", "_api_request_pointer_value", + "_apply_candidate_census", "_apply_effect_fault_mutation", "_apply_pipelined_verdict", "_apply_screen_fault_mutation", @@ -129,6 +139,7 @@ "_end_surfaces", "_entry_identity_gate_error", "_evidence_for_completed_effects", + "_exact_text_holds", "_exec_action_state", "_exec_business_decision_state", "_exec_loop_state", @@ -137,6 +148,7 @@ "_field_region", "_field_value_shown", "_finalize_report", + "_focus_on_held", "_frame_to_model", "_fresh_actuation_authorization_refusal", "_fresh_actuation_event", @@ -146,6 +158,7 @@ "_guarded_click_pointer_revalidation", "_guarded_keyboard_revalidation", "_guarded_type_pointer_revalidation", + "_halt_on_late_form_submit", "_handle_interstitials", "_heal_step", "_hover_check", @@ -163,6 +176,7 @@ "_keep_undo_prior_state", "_layout_drift_error", "_layout_drift_on", + "_leads_into_consequential", "_live_session_profile", "_load_layout_fingerprints", "_local_atomic_capability_error", @@ -171,6 +185,7 @@ "_lookalike_param_looks", "_lookalike_param_read", "_lookup_capability_refusal", + "_malformed_date_params", "_managed_dispatch_refusal", "_mapped_selection_readback_region", "_mark_idempotency_projection_failure", @@ -179,13 +194,16 @@ "_new_step_evidence_key", "_next_anchored_step", "_next_program_decision_index", + "_no_duplicate_candidate", "_note_page_scale", "_observe_qualification_environment", "_observe_screen_texts", + "_ocr_census", "_ocr_identity_crop", "_ocr_squashed", "_on_state_failure", "_params_with_business_decisions", + "_pixel_census", "_pixel_recheck", "_poll_postconditions", "_postcondition_confirms_a_write", @@ -231,6 +249,7 @@ "_resolve_step", "_resolve_step_target", "_resolve_worklist", + "_result_local_model_calls", "_result_model_calls", "_resume_descend", "_resume_inside_web_form_span", @@ -239,6 +258,7 @@ "_retain_pixel_identity_evidence", "_retain_program_transition_evidence", "_retain_visual_resolution_evidence", + "_retarget_by_record_key", "_revalidate_consequential_actuation", "_revalidate_retained_postconditions", "_revalidation_frame_capture", @@ -254,6 +274,7 @@ "_scaled_region_match", "_scroll_successors", "_sealed_run_unsupported", + "_sealed_step", "_select_transition", "_selection_contract_error", "_selection_region_compatible", @@ -274,6 +295,7 @@ "_step_requires_remote_identity_binding", "_structural_changed", "_structural_state", + "_structured_census", "_surface_identity_check", "_surface_refusal_result", "_sync_durable_audit", @@ -283,12 +305,14 @@ "_try_api_tier", "_typed_input_landed", "_typed_remote_receipt_required", + "_unarmed_row_pick_error", "_unbound_submit_refusal", "_url_path_targets_param", "_validate_fault_mutation", "_verify_current_effect", "_verify_dedicated_identity_signal", "_verify_effects", + "_verify_form_identity", "_verify_identity", "_verify_identity_ocr", "_verify_selected_option", @@ -326,6 +350,7 @@ "_SEALED_READY_COMMANDS", "_VIEWPORT", "_add_approval_flags", + "_add_approver_key_flags", "_add_attest_flags", "_add_backend_flags", "_add_browser_session_flags", @@ -335,7 +360,11 @@ "_answer_durable_item_pause", "_approval_gate_for_run", "_approval_wait_seconds", + "_approver_pin", "_approver_settings", + "_approver_signer", + "_args_approver_root", + "_args_key_dir", "_attach_cloud_seal", "_attached_entry_url", "_attached_web_page", @@ -414,6 +443,7 @@ "_default_run_dir", "_definition_first", "_demo_progress", + "_deployment_approvers", "_deployment_runtime", "_deployment_sections", "_emit_local_receipt", @@ -424,6 +454,7 @@ "_is_runtime_attestation_schema", "_is_sha256", "_is_uuid", + "_load_deployment_approvers", "_load_worklist_file", "_maybe_attest_pre_state", "_maybe_attest_run", @@ -431,6 +462,7 @@ "_maybe_report_run", "_merge_record_window_selector", "_package_version", + "_parse_head", "_parse_identifier_region_arg", "_parse_params", "_parse_qualification_signal", @@ -450,12 +482,15 @@ "_qualification_workflow", "_qualify_default_form", "_read_qualification_case_inputs", + "_record_approver_pin", "_record_flag_is_set", "_record_until_stop", "_recorded_surface", "_recording_encryption_key", "_recording_privacy_notices", "_refuse_missing_citrix_readiness", + "_refuse_rollback_durable", + "_refuse_rollback_unwired", "_refuse_shared_readback_session", "_refuse_unverified_managed_qualification_admission", "_reject_unbound_record_target_flags", @@ -464,6 +499,7 @@ "_replay_params", "_replay_worklist_pool", "_report_backend_kind", + "_require_undo_or_person", "_required_sha256", "_resolve_backend_config", "_resolve_record_capture_window", @@ -473,6 +509,7 @@ "_resume_approval_gate", "_resume_approval_mode", "_retain_drill_evidence", + "_run_is_config_pinned", "_sealed_input_refusal", "_sealed_paths_in", "_stamp_recording_surface", @@ -480,6 +517,7 @@ "_surface_target_origin_or_none", "_undo_run_target_problem", "_verify_run_sources", + "_was_rolled_back", "_with_drift", "build_parser", "main", @@ -612,11 +650,14 @@ "ExecutionMode", "ExecutionOutcomeEnvelope", "ExecutionTargetKind", + "FormIdentity", "FreshActuationEvent", "GovernedAuthorizationParameter", "GovernedAuthorizationTemplate", "Guard", "GuardSource", + "HaltCleanup", + "HaltCleanupQualification", "HaltObservation", "HealEvent", "HoverEvidence", @@ -660,9 +701,12 @@ "ReadbackLadder", "ReadbackSave", "Region", + "RegistryOrigin", "Relation", "ReportRedaction", "Resolution", + "RollbackRecord", + "RollbackStepRecord", "RunReport", "Rung", "SCHEMA_VERSION", @@ -707,6 +751,7 @@ "_verify_sealed_template_integrity", "business_decision_transition_guard", "business_decision_transitions", + "focus_identity_is_specific", "lift_to_program", "managed_result_loss_idempotency_sha256", "postcondition_contract_sha256", From c8aedc8e3f65eefb181e089d4f27dc211a466fba Mon Sep 17 00:00:00 2001 From: abrichr Date: Tue, 3 Nov 2026 14:36:49 -0500 Subject: [PATCH 10/17] test(flow): drop the golden baselines from before the merge with main They were written against main of October 24. CI regenerates them, bundle included, from the merged tree in the next commits. --- .../bundles/mockmed-triage/manifest.json | 40 - .../mockmed-triage/param_proposals.json | 19 - .../bundles/mockmed-triage/sections.json | 148 - .../templates/layout_fingerprint.json | 590 ---- .../mockmed-triage/templates/step_000.png | Bin 271 -> 0 bytes .../templates/step_000_expect.png | Bin 7175 -> 0 bytes .../templates/step_001_expect.png | Bin 4901 -> 0 bytes .../mockmed-triage/templates/step_002.png | Bin 271 -> 0 bytes .../templates/step_002_expect.png | Bin 10580 -> 0 bytes .../templates/step_003_expect.png | Bin 3685 -> 0 bytes .../mockmed-triage/templates/step_004.png | Bin 2399 -> 0 bytes .../templates/step_004_expect.png | Bin 42618 -> 0 bytes .../mockmed-triage/templates/step_005.png | Bin 2493 -> 0 bytes .../templates/step_005_expect.png | Bin 21089 -> 0 bytes .../mockmed-triage/templates/step_006.png | Bin 3067 -> 0 bytes .../templates/step_006_expect.png | Bin 5047 -> 0 bytes .../mockmed-triage/templates/step_007.png | Bin 3529 -> 0 bytes .../templates/step_007_expect.png | Bin 4947 -> 0 bytes .../mockmed-triage/templates/step_008.png | Bin 1160 -> 0 bytes .../templates/step_008_expect.png | Bin 5496 -> 0 bytes .../mockmed-triage/templates/step_010.png | Bin 3101 -> 0 bytes .../templates/step_010_expect.png | Bin 3604 -> 0 bytes .../bundles/mockmed-triage/workflow.json | 1394 --------- .../bundles/mockmed-triage/workflow.py | 79 - .../baselines/mockmed_data_growth.json | 741 ----- .../baselines/mockmed_lookalike_row.json | 734 ----- .../baselines/mockmed_missing_row.json | 730 ----- .../golden_runs/baselines/mockmed_modal.json | 1261 -------- .../golden_runs/baselines/mockmed_pass.json | 1228 -------- .../baselines/mockmed_pass_structural.json | 1649 ---------- .../golden_runs/baselines/mockmed_rename.json | 1740 ----------- .../golden_runs/baselines/mockmed_sort.json | 733 ----- .../golden_runs/baselines/mockmed_theme.json | 2721 ----------------- 33 files changed, 13807 deletions(-) delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000_expect.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_001_expect.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002_expect.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_003_expect.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_004.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_004_expect.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005_expect.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006_expect.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007_expect.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008_expect.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010_expect.png delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json delete mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py delete mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json delete mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json delete mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json delete mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_modal.json delete mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_pass.json delete mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json delete mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_rename.json delete mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_sort.json delete mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_theme.json diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json deleted file mode 100644 index 931d0ebbfd..0000000000 --- a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "schema_version": 2, - "content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "file_hashes": { - "templates/layout_fingerprint.json": "1e07a218d3cbbe592419e702af84049e04c308ee3e1c1d78444a0637847355e5", - "templates/step_000.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", - "templates/step_000_expect.png": "29e54a82c2f7df3554d2487d9bad748fc0abd86191416d39343c1eb866c486d1", - "templates/step_001_expect.png": "e2e203b8bbc4bf0a31aebd56a1303077243a3ff602708bbe9eae46d45460ebdf", - "templates/step_002.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", - "templates/step_002_expect.png": "68a0aa31d3b7fba1139c05d729f49252174481dfca5a8693cb5b6440f8976fe6", - "templates/step_003_expect.png": "3068277f51d8dfbfd1ba50b31afee93e76dcacb67b11d4610b6dcdf681597eed", - "templates/step_004.png": "d0082e004cf2a2c03668ca1c6630001eda69bdcf169d05d58839dcbddbc56773", - "templates/step_004_expect.png": "230b56796f24b36637d77ba395e6031bf39cbfab898da61c1c41f23f1b57e396", - "templates/step_005.png": "e38e9760b48c63a08e6618b2624c6796620ce58b5f7d7a2ff63f678aa25bb3e2", - "templates/step_005_expect.png": "76696ff4ec85753e45b5378638fa7c19f4f7fddb1cf35ee99cf6baee11844803", - "templates/step_006.png": "97568daf732ecb6109d858dd09cdcf78b031830c819b6f4b6a50ae60a72ada10", - "templates/step_006_expect.png": "d0e310e05830227867e94a9b288e6265fa28c375558d58555e79bfb002095134", - "templates/step_007.png": "7f6817a19ffe49b31a05a70a23f3fcdb2a71b93b3f4ec6a7b997126b4e0ff16c", - "templates/step_007_expect.png": "ac9ee10ba2354bca0db66fbf3bf93ca80b62a650d3f19e8b71dcc6038a4d057f", - "templates/step_008.png": "b6b06e1ed6155ed74899d0a42bf23df672bf930bfb6f830ab69e6d89ca6fedd3", - "templates/step_008_expect.png": "d1f13cae697465c2ec07310adc38d7780f7d7c0146257679b7c559716b992a31", - "templates/step_010.png": "31193461982dc5b438be9e459f1ce17f2b5dca4109c206428c7d8135bf60643a", - "templates/step_010_expect.png": "5fcb6891641b02953b9baeaa75581a3a9fa1db6c7bd39d432f1d4d06d04c8856" - }, - "provenance": { - "compiler_version": "2.3.0", - "source_recording_sha256": null, - "compiler_config_sha256": "43f5f0d9a4d87c9637138dc24dcf8a163094ab400b760cee8c2567a0760be695", - "created_at": "2026-10-24T19:14:58.653368+00:00", - "policy_name": null, - "certified": false, - "certification_status": null, - "certified_at": null, - "expires_at": null, - "certification_invalidated_at": null, - "certification_invalidation_reason": null, - "governed_authorization_template": null - }, - "encrypted": false -} \ No newline at end of file diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json deleted file mode 100644 index 7f3956125d..0000000000 --- a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "note": "Flagged field-label parameter proposals -- NOT applied. Run the confirm pass (openadapt-flow compile, interactive or --accept-params/--params-from) to turn a proposal into a parameter; unconfirmed proposals remain demonstrated constants.", - "proposals": [ - { - "step_id": "step_001", - "name": "username", - "field_label": "Username", - "masked_example": "nu******mo", - "secret": false - }, - { - "step_id": "step_003", - "name": "password", - "field_label": "Password", - "masked_example": null, - "secret": true - } - ] -} \ No newline at end of file diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json deleted file mode 100644 index 992256c6ac..0000000000 --- a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "schema": "openadapt.flow.sections/v1", - "note": "Display metadata: named groups of steps for program maps. Execution and the outcome classifier ignore this file, and it is outside the content digest and the workflow contract hash.", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", - "sections": [ - { - "id": "fields-step_000", - "title": "Sign in to MockMed", - "title_source": "ui", - "kind": "fields", - "steps": [ - "step_000", - "step_001", - "step_002", - "step_003" - ], - "fields": [ - "username", - "password" - ], - "params": [] - }, - { - "id": "fields-step_004", - "title": "Triage", - "title_source": "ui", - "kind": "fields", - "steps": [ - "step_004", - "step_005", - "step_006", - "step_007", - "step_008", - "step_009" - ], - "fields": [ - "note" - ], - "params": [ - "note" - ] - }, - { - "id": "save-step_010", - "title": "Save Encounter", - "title_source": "ui", - "kind": "save", - "steps": [ - "step_010" - ], - "fields": [], - "params": [] - } - ], - "compiled": [ - { - "id": "fields-step_000", - "title": "Sign in to MockMed", - "title_source": "ui", - "kind": "fields", - "steps": [ - "step_000", - "step_001", - "step_002", - "step_003" - ], - "fields": [ - "username", - "password" - ], - "params": [] - }, - { - "id": "fields-step_004", - "title": "Triage", - "title_source": "ui", - "kind": "fields", - "steps": [ - "step_004", - "step_005", - "step_006", - "step_007", - "step_008", - "step_009" - ], - "fields": [ - "note" - ], - "params": [ - "note" - ] - }, - { - "id": "save-step_010", - "title": "Save Encounter", - "title_source": "ui", - "kind": "save", - "steps": [ - "step_010" - ], - "fields": [], - "params": [] - } - ], - "edits": [], - "context": { - "step_000": { - "container": "Sign in to MockMed", - "kind": "heading", - "header": false - }, - "step_002": { - "container": "Sign in to MockMed", - "kind": "heading", - "header": false - }, - "step_004": { - "container": "Sign in to MockMed", - "kind": "heading", - "header": false - }, - "step_005": { - "container": "Referral Tasks", - "kind": "heading", - "header": false - }, - "step_006": { - "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", - "kind": "landmark", - "header": false - }, - "step_007": { - "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", - "kind": "landmark", - "header": false - }, - "step_008": { - "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", - "kind": "landmark", - "header": false - }, - "step_010": { - "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", - "kind": "landmark", - "header": false - } - } -} diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json deleted file mode 100644 index 93a705c24d..0000000000 --- a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json +++ /dev/null @@ -1,590 +0,0 @@ -{ - "scale_landmarks": { - "salt": "bf69b9b6dbf24361103dedfa0aed3511", - "steps": { - "step_000": [ - [ - "f624df4a00c1c2f9", - 71.0, - 25.0, - 98, - 24 - ], - [ - "8c25b77b5816e63d", - 234.5, - 26.5, - 201, - 21 - ], - [ - "c03ccf634d509872", - 138.0, - 89.5, - 228, - 27 - ], - [ - "071d98bd385845a4", - 85.5, - 166.0, - 79, - 22 - ], - [ - "5107f3d7db1a174b", - 85.0, - 234.5, - 74, - 17 - ], - [ - "6cd4ae6b152e18d6", - 120.0, - 324.0, - 58, - 24 - ] - ], - "step_002": [ - [ - "f624df4a00c1c2f9", - 71.0, - 25.0, - 98, - 24 - ], - [ - "8c25b77b5816e63d", - 234.5, - 26.5, - 201, - 21 - ], - [ - "c03ccf634d509872", - 137.0, - 89.5, - 228, - 27 - ], - [ - "071d98bd385845a4", - 85.5, - 166.5, - 79, - 23 - ], - [ - "a3466dba8f68ef72", - 100.5, - 195.0, - 91, - 20 - ], - [ - "5107f3d7db1a174b", - 85.0, - 234.5, - 74, - 17 - ], - [ - "6cd4ae6b152e18d6", - 120.0, - 324.0, - 58, - 24 - ] - ], - "step_004": [ - [ - "f624df4a00c1c2f9", - 71.0, - 25.0, - 98, - 24 - ], - [ - "8c25b77b5816e63d", - 234.5, - 26.5, - 201, - 21 - ], - [ - "c03ccf634d509872", - 137.5, - 89.5, - 229, - 27 - ], - [ - "071d98bd385845a4", - 85.5, - 166.0, - 79, - 22 - ], - [ - "a3466dba8f68ef72", - 100.5, - 195.0, - 91, - 20 - ], - [ - "5107f3d7db1a174b", - 85.0, - 235.0, - 76, - 20 - ], - [ - "6cd4ae6b152e18d6", - 120.0, - 324.0, - 58, - 24 - ] - ], - "step_005": [ - [ - "f624df4a00c1c2f9", - 71.0, - 25.0, - 100, - 24 - ], - [ - "8c25b77b5816e63d", - 235.0, - 26.5, - 202, - 21 - ], - [ - "233c0fe0e7039734", - 106.5, - 89.0, - 167, - 26 - ], - [ - "e20511753ce4bbca", - 63.0, - 139.5, - 58, - 21 - ], - [ - "448a03d120a534b6", - 304.0, - 139.0, - 60, - 20 - ], - [ - "376557bb90e0b2e5", - 608.0, - 139.0, - 60, - 24 - ], - [ - "92ba035b7b6817e2", - 754.5, - 138.5, - 55, - 23 - ], - [ - "4c6c8bca888dd658", - 81.0, - 188.0, - 94, - 20 - ], - [ - "133a2ca9c4b67c2c", - 336.0, - 188.0, - 126, - 22 - ], - [ - "4a71ffe05e0793da", - 598.5, - 188.0, - 39, - 22 - ], - [ - "174a1dbc27ee9670", - 83.5, - 244.5, - 99, - 23 - ], - [ - "c44c28839c991a86", - 345.0, - 244.5, - 142, - 25 - ], - [ - "d9db5e44cfde450e", - 609.0, - 243.5, - 62, - 23 - ], - [ - "dc8cadf44f227f08", - 88.5, - 302.0, - 107, - 20 - ], - [ - "f827e6f8bddc88b8", - 346.5, - 302.0, - 143, - 20 - ] - ], - "step_006": [ - [ - "f624df4a00c1c2f9", - 71.0, - 25.0, - 98, - 24 - ], - [ - "8c25b77b5816e63d", - 235.0, - 27.5, - 198, - 17 - ], - [ - "0eb05c839ea44349", - 209.5, - 98.0, - 347, - 20 - ], - [ - "8a4792eb151cde87", - 114.5, - 159.0, - 111, - 20 - ], - [ - "af97a9f8cc43b371", - 80.0, - 211.0, - 112, - 20 - ], - [ - "7ea51644029e377b", - 90.0, - 241.5, - 138, - 23 - ] - ], - "step_007": [ - [ - "f624df4a00c1c2f9", - 71.0, - 25.0, - 98, - 24 - ], - [ - "8c25b77b5816e63d", - 234.5, - 26.5, - 197, - 17 - ], - [ - "0eb05c839ea44349", - 209.5, - 98.0, - 347, - 20 - ], - [ - "8a4792eb151cde87", - 112.0, - 143.0, - 180, - 26 - ], - [ - "cb1b7d20380a098f", - 80.5, - 182.5, - 119, - 23 - ], - [ - "230039e031a50b3b", - 85.5, - 214.0, - 53, - 24 - ], - [ - "cee1c2fc72baee14", - 206.5, - 213.5, - 61, - 21 - ], - [ - "2eb74562b59f685a", - 41.0, - 270.0, - 40, - 18 - ], - [ - "3ea76c1c6ecff389", - 134.0, - 456.5, - 118, - 23 - ] - ], - "step_008": [ - [ - "f624df4a00c1c2f9", - 71.0, - 25.0, - 98, - 24 - ], - [ - "8c25b77b5816e63d", - 235.0, - 26.5, - 198, - 17 - ], - [ - "0eb05c839ea44349", - 209.5, - 98.0, - 347, - 20 - ], - [ - "8a4792eb151cde87", - 111.0, - 142.0, - 178, - 26 - ], - [ - "cb1b7d20380a098f", - 80.5, - 183.0, - 119, - 22 - ], - [ - "230039e031a50b3b", - 85.5, - 214.0, - 53, - 24 - ], - [ - "cee1c2fc72baee14", - 206.5, - 213.5, - 61, - 21 - ], - [ - "2eb74562b59f685a", - 41.0, - 270.0, - 40, - 18 - ], - [ - "3ea76c1c6ecff389", - 134.0, - 456.5, - 118, - 23 - ] - ], - "step_010": [ - [ - "f624df4a00c1c2f9", - 71.0, - 25.0, - 98, - 24 - ], - [ - "8c25b77b5816e63d", - 234.5, - 26.5, - 197, - 17 - ], - [ - "0eb05c839ea44349", - 209.5, - 98.0, - 347, - 20 - ], - [ - "8a4792eb151cde87", - 111.0, - 143.0, - 178, - 26 - ], - [ - "cb1b7d20380a098f", - 80.5, - 183.0, - 119, - 22 - ], - [ - "230039e031a50b3b", - 85.5, - 214.0, - 53, - 24 - ], - [ - "cee1c2fc72baee14", - 206.5, - 213.5, - 61, - 21 - ], - [ - "2eb74562b59f685a", - 40.5, - 269.5, - 41, - 21 - ], - [ - "3ea76c1c6ecff389", - 134.0, - 456.5, - 118, - 23 - ] - ] - } - }, - "schema": "openadapt.layout-fingerprints/v1", - "steps": { - "step_000": { - "char_width": 9.770833333333332, - "landmarks": {}, - "lines": 6, - "profile_sha256": null, - "text_height": 23.0, - "viewport": [ - 1280, - 800 - ] - }, - "step_002": { - "char_width": 9.666666666666666, - "landmarks": {}, - "lines": 7, - "profile_sha256": null, - "text_height": 23, - "viewport": [ - 1280, - 800 - ] - }, - "step_004": { - "char_width": 9.666666666666666, - "landmarks": {}, - "lines": 7, - "profile_sha256": null, - "text_height": 22, - "viewport": [ - 1280, - 800 - ] - }, - "step_005": { - "char_width": 9.727272727272727, - "landmarks": {}, - "lines": 19, - "profile_sha256": null, - "text_height": 22, - "viewport": [ - 1280, - 800 - ] - }, - "step_006": { - "char_width": 10.225, - "landmarks": {}, - "lines": 6, - "profile_sha256": null, - "text_height": 20.0, - "viewport": [ - 1280, - 800 - ] - }, - "step_007": { - "char_width": 9.153846153846153, - "landmarks": {}, - "lines": 9, - "profile_sha256": null, - "text_height": 23, - "viewport": [ - 1280, - 800 - ] - }, - "step_008": { - "char_width": 9.153846153846153, - "landmarks": {}, - "lines": 9, - "profile_sha256": null, - "text_height": 22, - "viewport": [ - 1280, - 800 - ] - }, - "step_010": { - "char_width": 9.115384615384615, - "landmarks": {}, - "lines": 10, - "profile_sha256": null, - "text_height": 21.5, - "viewport": [ - 1280, - 800 - ] - } - } -} diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000.png deleted file mode 100644 index fb7b324bfdac2e246cfa97953ca2e594f21a31dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3xL>xg9%6qy?p%xNL}-EaSW+oe0z{luz^8ZL~$r4Tlj0`egf`5 bGWu`f*}awPE9}LAK4kE8^>bP0l+XkKDh_-5 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000_expect.png deleted file mode 100644 index 37f0bfd628af9a5b834851df73fc78fac584e7b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7175 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 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002.png deleted file mode 100644 index fb7b324bfdac2e246cfa97953ca2e594f21a31dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3xL>xg9%6qy?p%xNL}-EaSW+oe0z{luz^8ZL~$r4Tlj0`egf`5 bGWu`f*}awPE9}LAK4kE8^>bP0l+XkKDh_-5 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002_expect.png deleted file mode 100644 index da0b19b6832b21d8f5dc55983a727856d61b1814..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10580 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 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_003_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_003_expect.png deleted file mode 100644 index 8acfaf171c4fba5a981676d87b1f416ace274253..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3685 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 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005.png deleted file mode 100644 index 28e8ce90b67cd55e27e72a4cde8defe092038878..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2493 zcmeAS@N?(olHy`uVBq!ia0vp^3xL>xg9%6qy?p(Hfq}Ed)5S5Qg7NLa{2bxuvg{w; z3qP7rP`pUR;T1!;bM2|Jq6stRxn_N03N@H09%#N~NnK&mRS%Vb;~9UO4A<7jm8?EC zMSO~es|)w4TQ4TuxgZ)C7f{OamGz~|{7vFz{1;}j&rIt&ysrmK->P! zX8m^uzCS+N!Lg3>@S{~c@jnw?SgyAu7KXO1|6`!klznK!4z0uCbrOOHO%o$xrasiR z@9B6j%Rpz{DWF+yE(N|4V&SPkOO%y%sPS~KHmZ5rE+`ly+;%ina^I)Jc#VC`KI7ck zxi;mGAFsYP{d?{jJLy+TWA{(sfBQEx_^_3Y7|fyqqq(zR*L@8ttIJI-jdfihwc5Wh zv##==WAfKSH|^hNWks;RH-tI$19wQa`y%57`^-C*QHlE2J;{${q5 zXk*rzyrWAiGgUvoTp5438gAF3BPE(5t^6B|HH{Y@9JIo&nxR|XM6BO>^;3awG4H3H ztcAAbzdXxw+5+yq@j2y_@j(t2A9FMeW4T-dl|mg~KKShau7AzU9rJeAB)=>*bqV7DRg;hfQYK#np)d^rT&S#@(Z*g4}9NHP+jrF z(sRzv$}g`@ecL;6dzsG5@NlbJucETF#pJ~F;%B|tpOikGF=We@*0^_T?%&(M=Iw1h z*|`2^g4s-Vt?Om-A#q3Ebe@!2`&K&D}eqlK1wS%|G|8{>M^{kkYbK?a|%O{qI*jKIZkgPxtWo z>kn`3y{=~$b7RZHqkDTFo~*82zIpq`ZM(xOpQg{)VORYs$&B;m_Vc-w+l<8J=g6F1 z9D>6Uy=$X|_LiF8H-4PV-CYr~;afya_VF)wYnQ)gw^ly9Tl@Gu!~TEOnSv{BMbz8u zt9-rn_HR8M+iHi(jcVTyJ$Mo!$B=z`Gm-J@1jNvE8-}9qz2z{YST#`P{!-{;O_-vC*E*6&ZM?Yfi^HxCp^ez`imN8e{Fs6ZFBHRrhVL;w-{0B4y(j-F%OS^<^l6`_X78?^s=ReG*bfY1dEEV9Slrq#F~3y870E(V z`0V$W*0=boZ2q-%{pQo62YU~`yUTk!@WOeYIUahtixzFwHrlhBjh}nEe(F6x@t=A> z3$j1{c^RF5Cn7Vm{?ppMuk-rvS{ELT%UN}~EcZ_E-Pm_ z^KZ*r6(_IpteE>zRoMP1!j^}&Yenr=IxKtibNKYi>but%Q1W|AwDh;_=3Csenof6{ zU*`YP9W3uF7Pu3b*+_|pk3T}Tl)1K9hyCjBpFdY|im>%$BVnmM$6+;)x|h#%r$8G! z(X~iP?$^9iFlydFlTjKW<7oSz=A#gQAZ3^yOgjw^;$8Ix)I1GcM|6P1URG zNQM8Om+$A#{~f+f>qg7fTtoZMtGE5yFZTdRfzR`2yZ-&yxOdaKO}n-!1@vBBzQbg{ z&HsQXb%7 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005_expect.png deleted file mode 100644 index 179ca92c9c12e3e263db3c48a1bf7b74f14579d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21089 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 KRLN5#|NjG-mb(c6 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006.png deleted file mode 100644 index 6dc20e56a692c647b94cec7d7900845460258330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3067 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 Cx!AS< diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006_expect.png deleted file mode 100644 index 12a3279b4040daf9d03b6bc94d01e75b457f0027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5047 zcmeHLdr(tn7QbM-h^)n3T(BaIRt2pfDhjNTWECwa7PPhUk_6p584O84BoH16A@BEIe01CC%+5|{|JXnH=iWPa&i&5$ z{m%K$_d7S|SfJm^6>C=j0I>3~|G_T-z_JZ`<}J5`uGSH_asaR+9zMAL#6^p_$D|tc zM3hj*S@s&$iQMuy>XGvXs{HD6ip29TEv_H$jS7j++jGacsdvD4uD#o(b?0r%dp4wp z>`nev$Md>}Z{Ea`S(x<*_?qA;|LCU$prYpPkr_+e#`>-eIO|^KA2L_9kzvSG|A&7~ z;8qY?Nrrtcbvh#WH~IdZ9rIVeDnn&V2g1#D+eo4-a*o}6>p&t>C-b7}A4?zl5yyiC zDcW)eYrur@U|Stp_<>bviu5MVbLc4sZL9?eUW=wBj4QF)qG27&9rOq0)2PXaV^0Ny!*LH}hV40DLYvPJ4dEwaMl#6pOjCxE7y4Kt}fduiq7k)9Yi}RA1 zU~2#ts9IL)NajW`up*u}1w?cr)d4Wj2Ae}|+N^F$~(|CpiP^XACM+M=h zW;m{HiG#7yQbxZ?H&;^k!pj-n!cRL&iWap85w#|AhnQLKCZMVNT}*n}1ZB^R=g32) z3eC_)RDTEnpU0Nkz6bkkWWK?+G-Q?C5@CcP~nI)1b9)kLGV;49I0v4 zk0jQ4WE0I}^>jtIElF}0kL@@LRnNh0?RQ%WKa#v`)Iaa5;0Q@w!N}xb{VQafJky64 z52L*g0XsRn5uWSAIm6F}>Bwou`+N2phvsTa)awv(HXJrgd!P!x;lz``J>%a}3hFeV z7s=2+K7(i{37zECO0eD#C(H5Gjr#BzLXEQpa9IYG>AjG>ZHX+2uSbdM6U}Q~Pnxhp zPYy(@d)@g&kq2D04n@P65qc2cB2Z08>xB!$#*rXz}>?Q zbM)vGRi>4cP87lQ(k+rp38Cg}N_8qu-vSa&LU5s7@-w)gRjTm8v|}!#MczscxipZU zC)9JhNDZkoCV~pDJ_pXRglNV@lOCz04}OaxOnZc<5@gz2Fx^NOz7Bu3F`7r{5zQ{M z6%dSl=sCu?2u}?|;RhJt%*NmvuCO>_Pnwc883(1h8`^?DrTW}Ue5871qGGy?U@A)6 zr%?1grFcmC+H3Xdxl%&RWT6jdsw#p!%S%<(1e$U98Ieymr$f&6Q*Ey?zKH2*(dUEx zCP`NsDRQuyEDX;u^p~?R8UtM@xR|AwZt}|~pc4h2X0^K=0IVrUMr^rWewEfTi`dedg_Hv?>z!}+>IhK zok$Xz&?L!~GF0*I^fM>7LQ$OdPM;mNVI$2i69pRp;O~MPehh8b5b?sZuV-$43+3cm z5B-~q<5olyH{c|6fPJrC*d`erC(*^->d!WhXB_+e7hWek9iRjT@Kvz|TbEufF|kw= zOIu;7DJ=EErBh+)d|Z+R|3M)6pNoo$+C}lN;?Z4qmB&EZ`>y!fQxP--Z*_BZJ?d-+ z)?xIGKfcvr6^@^k*Z{z$rUwspP>w1X|2&Vjr+m2!Qhd)Z_{OFzYCL;;d*>TDCNCVX z=upMY#gTqD|Jd*;09c=ym6g>Sb8qPFvWI_d(DDm|pZoo#{(JJyefv9m&~P2D(Uf7^ zW#ExsZ`kUt{%8&=$)p`Z$v=WZQc(Blp26s<`-yd7m2V<~G^|f~Bb=qjohR8h};-!~ZJtijHouT;D0$|@>6w?kU zM6=QZZ6p?hqdx?&@m*P##I;02*L>K;i981?amvdio+v_X0y>AGpCZh8u@yt$M7$I? zD72d&NR88Gq1#fGe8yh)_XZq{+1+%dc@i8uV1Yc3G)1*(nkUUOR9kBxDRr>|`mo3c zr!iMAr*!q&`H@{Q_Q2>YG|!$c77`G~EKU!(YUg;9F z&Zn_06u8{9I2A?_^_hQ4ar~gvF_7w=9+TVz0P#JG2{)*gZ4-Ge_x38?m#p~lRU8C0 ze-Wy7&gx{}`Bh06?@OuaGoMy{Z_zG>Dg!utDDYt2fygWW0_HJ* AV*mgE diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007.png deleted file mode 100644 index fc08d3799dcb8a847440eae2ba0fb180072364f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3529 zcmcInXHZk?77ZmpD55}60i_5gbi9BN5V-XAsG*AV4pNn-0--lSrA4HJNDvZ`4$?z! zf`*$bO?s80p_llG_s;Xandh6iGw=O4=ggdazP;DC_Fn6o6Q{4M&OpmX3jhEZG&NKV z&z^Z_*RM3>XLqL6^@FqbPc>B(jRMIw+I{rlF{gm-trW?v0}#KR*^@T4&e8VIeWl8w+erpbv-`82Rj;FI%L=tLi*TMyqIqpwx$A96`x$)!R9ij+PvBV2q8eX9XPrSo+q zO_-zI`qcsBC>eZVs&%%<=&QnCPiN~JPj+1HK8up(@=b;6PO+59x_JqhMRnj&`PlgW zq&{dvoS2t22+;maoG%_O1zb-W&#ZmCLU70EyO)a8fYEAUY%YdwG`T8{HO9q3iCT$R z$h7MQ&XJZoaO-4K>7IgshwlqtU_hp1QR4JLL9O`i|~ z24^ILr1S02>x#3Sg-7&<;HeNF&jcM&a63FCAno>6cvi|y%gHD$NA`yNwSTN{A|oi& zin?c+x2pZueu)C$Mz~cM5Bq-SN$`93QvQ<|3!?Sff$bun#i|<%arOKQ+c5Ulw}$y! zAl?nw#8;CC5|6Mui?5Zk*A28hoau7n$^Gig;o~cb!jf+DkT>7GTR%4*jn z$_+|<4tNDh(K2wF_J@{l>2yv})qSr0;7O0)Qg1$(PZ%G@In%V%>!T&;ft@gQKOksy zo1X1TZY^!&{_8!)4pxfM#%ot|BG$wgOz$6eH3;8qHlieuo33dO$VT`^$fK(oeH<*a zn_ck&scd2blIL;*i)-LWe#*S)bNmAD^txHi%N$c46xl+#hGDM-HDaTkM^+B1ae*wv z!@tGHZVA4Wb{C`m#nHq0oP$clx39L?%ZyE5UtwIvQRCmtq2@ko9r=Drh`0nvtj3|MFH4e3S!FNk~a91a3=>{_c4i_W11|;u#-iy#)rY{RMDDaY^ONMEW=> zR*%GDs!0)1;iEWW$D2E|-tf5SOJN7XhwmlYPX&>f$B}l6(I)drf!hJ5g7k7^8bnt| z^EET%STMnWhF2DS)A9u#g_C~7ls0CP%^x|_jG2mh6=F2LAhD?Sq}Dw?i9W)`Lsv0G z@uME_%8Rcbtj?oNn=?2=mp_*frlAcbV@=@y!cpjjrU?wc!Y>@;v1yrQOB;e@i0`w* zslr!2RqyDrgAMaUO0hJztaTi#mPUk1pMAUm9DOjBdH5w@I7enHF*)=0(8T<#1!9Dr zZt`F%jW$>hKrCmFT(+otvP$cRQRlD877i4k#Z5WsxE4y)_A24LlA>o&6L&qEyr(Xb zBTzdh{YNjtCAa~UoadyIGUH0I`^99GbAG_Lf}adqcp_o#qVh6+ouBJvE;Gdzd71E9 zN}3(3%A&Iye=aH@1_gZ~F;M#pN~ZL&c%8tO(S?Zl#>@V#BK7=*%gm z`Soc;Mc1#@o3Sy=dH-fJ)}kvf|~E@83%bDX|c3`X@)A=jzd9{DA7~%<s@u&&}NuxbF z+r)lAHt+9ZH|xWN?chH|S=hZQkoFn}kWOjL-339@C~l%2_^sdJmGNi6y-Qx*#@ z zgo=w}N>>RE16f@>EX3gN@Gp5nK$0hdQ7aR?U<9m+IrrhY-NF8T>j}Oj1T1{fm0y&0 zHWYMP_qInWJGIeWhxdeC`HVGPu}NJfH?vDs%$w6q=S(KJ@LD{G{YO7`MQ88dF_npL zcVl0;tw}jp*sIv}?3lejB+`l)ypN1S8;km#IOjqvmV{XI0W6wV*Llm6pPUX>Msmgm z@LOTuKv|YLa*RU#B5@u`7RWuTu1VdG zA7J9KF;M&oGMlTa=hAV{811b(D-Hb}JDt1b1 z^b-y>jyD#m*=skoVgpxJ;Z3s9#6Wv^KGd7AcLPuH$pKoWX;LX?OMA4{D-Nf6T>8o|*S#0^{n zaIJ8Ta&WMw4+v-SOhWFY)mh0njteD_A)YQ{pMa4$3r4-dAIaav$hqMwt)+UsH7Nm< z>Ru&`(@g1J?gJqgSQ#Uo%w{OD8@&0^Q8#2~H;2}3Y8ZUcyyQ#3K1J1R(fm7SI|zq~ z&o{o1*Q*^g7gFNh>2k*QSTaiy4;%qG=IK_oL+Q+;#>+C-1IG^i-3kCp`gNYr=_}eI zNQ+9RcVi7~HfTb&WGQePhh$_sx3~B5uD?l$9!&xjNkHMV{>l2-j_29l`%8Wm<5UeM zOk{-cg}ee!p`hH!tP7xfPThWz!8vy`s?1n+?hHJ{$2c{cSU->DQ^|+FRFl%+ul?vt zJegJuFrB1YE;sFIhqsSftVPt#^)IFi)gI3D^z_WI7krSCaW{o@6oipv_gz>OVos3B z=AbKOwThTDm9{1>7z)L%Jq?j^R_Vz4LH4w30KW)b=3|Rb2O@)@}PSwKs6G86&Bq1odDdXfhg)5|{Y$>86V^X_(O#)-D!N1lUSLC>HZScbEPGR=Nyd3_K5w5FuWt}8LgJ?7z6oz{v+ z%4)PZU^jWiZsT6z%mR`g6qb43QeB<2r93kvFpJ&63#ge9$?BQu>rx`wSer+%CFhT( zpxn21z4Ju3I`0op_+r_}gg`$!l)$mr@Jd=f-l^$9p4bgrr@8vY)<*7<8rv!fs&uL! zf>9N{KM{;>wC~sl-vT4eTD`ECR1GtMAH@P^8UDq6*v0ApaUdmpTu_m$2$IbM2+F*A+3kF<*U!Pb*K;* z(@Dtc?vq^pXD8iux(F$uuqBBmi^iWVSPumx!=P!+>?Im!zi0qWRb3T~l1=zO0s0@V A(*OVf diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007_expect.png deleted file mode 100644 index d3d7c922eac10e981bbbd21e18407fa712cab672..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4947 zcmchbXEn~pLj1NUUrl}5!Vau3+Dg;dS(q}1w$ywYID&2ft_ZGjh&GUs%3SbunipLT8N3+ zYdD7ii6y^_q~rzZYQq?A`^%m$+krmDHD((itj25R0=2P)8@pWYK=n<{tzg{6d#W)q z*NwQlBC4+^-@!&t@d~d>fSUs8&DI@OhapJ#@mHP)zL_J>ttHvWXhZ+cSI+6xA%1Ed z_G5(^7N1Th4Ml0@WRf_?g9jg9VhX%ykC{-%jo8>8xmhXYVwcz2Lg5>vYNf1*7aIg@ z0(su0>-ho--0!QEb)C=!pTGjGT+P033ZU87RJ6N|maZR)1tb-HR7#gP3P$_dIEw-( zXJ#ODoE%ZzCBpUt%DYdpO=8s4p)fq~=>Xq&zxC)#-WH`?7`{pP?o01?4+RITB}W$s znjq%_fe{o9KiO2%q&YZf1;kjQRi?O9UTDNKey7NSn`|m`v7FV>>!Kw}l3Kyy(37bk z_8LplM}Psl(JwdmQwGa=a?CyfGo51)Rf3uaQ$+}7?+TGSl zrF0k6ZKfZbb$3~m+ZD1*Vu zhM8~o$L6EK^>VP>N>6uZa*xh!-zKBPaudq;>oP$two6x!TW9IjXEMzjOP!x#9YiqH zZI7iDTgD4P%xSWtiB~#fZqu@f!gGt>mBCawB4TvZfvuIzZ#n>3Aam9s)7X^boA8Ju za+-SVys`z0G)#tOCo+FEow4tcq09Q#PagTE4q2&6?Dct^pMEL7?Hc%M?>9xgzTUTq z-gg)TX+u1Q^1UkftXwJ+_zPBkFp zZPNC3`3SP}Vg(lWtouVOmiz<^Ev@T3M5>B%J7Srwi9-PK=zHl+g`M^pjBJnkR<-pw#BZYCn-ydsaF>V<^t(D*SC3 z*-JnWXSg5AHfZm2@{$-NEMY<{!mYx@N|Qch?}$^oqjXtMg&N1E(M}FI3V*Pqpk~=@ z&53HWDAL2~>ZoFd`Z3?^0mr2n>d*VM&HYbf>Wpm2RaE5S%!Wq|E0ife8s+u(Wk4&3 zj5DNN^_T8R_g5OjAh}nMo$~H5zIqmF>diikxqxIFVqj-O2s%0n6-!3iYf)vGkKMWlmb?kb z4_uZ`l_0xF63mP_@F>6Iw=DAIM2)8{(7tC)Tu@cC1HaYv)`r)Ahojzj24kOI?zJlO z3JpbJ5CR){38BUy{sqQ;jU^t>6_P_CSHvGqKV#n2#+-9JXKQOE=+YBSKE>`d`MQXm zRzPO)H*;~j`-V8Nd`P;sie~5o3*Io~2bPkmvCnbs+C+W-ZnZ~|(@n#u+IK$c$woU5 zT~JflQxa`{&B`TmxcQOG{LNXFOfP)%=a9R!D9+1myh5rYM6En5677#J`8Wgn0Y1?8 zBVZ#7>zxHA>JGxz2OG^DDeSP|713L9z>(>f$jUK(u{MC`reMzTpsk_aQ}2Pd3Xq1y zIHatJDGgtXL}=F6xwj^qKgi?1VTaeFdLm1kE~M7q5EKBFF8J*U638sTf7`3K)z#5) zGVWH$j#hN(9$m(`vFU9W{q@7UFJ2e9!JP81Cf~JuBZ|}295Gu>=tzo=?7vmwRXk*s za)SVN807EHBs=4z-(jsKayT+3!8m-8svIj@)Xn%0Cm9XOgBm%APKxZm=;k$iP&Jlz zH@G&?;js6`r@4OlgMV6_U2?Il<6o(Vmj)SPOPiOxl*a4#o}YH*R3;{MXuWFJ(l0^9 zaLn}#XswZ#V7e{I$w=t1W5y&f=m-D^lN<=YlK2mw-5zwG|be3$mGB zy$NDYm*sBALdSb$PmD>4(#s#36&8#7eS6#QO*A$UJf|L7O}*gs4-Y*@W`1F4gfqns z4xNh((JrCX!2)BVmC7s{wP|5F#I8eatz5DtSys)7b}Id>E`efxzTW(Un}iNQx{JU` z6e}QW%dz;>*HN9P;b>A`)L9!9*nb`xl3}9}6mpW%uV_6vP^ycynSCJuax-YPa>$nx zXG;N%+xJAbNx%8aQ_q6p^*jnhc2ps!D4ubxS4rh2^Thv#+}(g0>XBOFLnx1z8|}8I zs}ytr^0u!O!A5#71jwf{AA7Tk4m=V7ryUI4hZu|A@UBW4#%VOcXxMRRN5G1NL_oNfNk(~25x1P6S-784DeI-{@d1nlkrHEWxl01k z^Tgi~{|GrH;-+Ka>0UyOl}P6BFB_JU6Mf>+Ux)nqSkm#R;yZj7(cgtie~J&WHfXD! zK>Jfls*~>FVl4av2_>CGqd`5N)RmyN8m+(3vKda?X;CPU5u5QpSGDkOb?}m-u1fHw zqh_%s(#@wT#0h%8#(TjkW$)Vx_tOO=NsV+8GS*+!A)4q~KXnc9(_6rS zor3IvU(e=|Y=d|%M%OkI24H)xd9ot`ro#nojQgx7?Vk7Di9I0T1dcJAd|M1u9&4ra zAACu7A9|ii^ueTndQW#%3Bq3Hi-Fj^=Rw|Q^X^JL*HJr4z|$5}_&cgT+6?9v{D6`n zv`}P{SpmDj&{_OR#_)<|$`sbX%ysXbd~9q@o-n7F>`hENSjY0j0Jh+U$gl|jTsejs zO_s^{_46PoRMp(lRvN2yPKwZLgK#e?fO>|%U2l+VD*Xu;=TG!&a)%?E=qhw_TiUcLpnTwp#Sj~l; zL+BbCr=PZB9Y4vAS zt{+A0t}SHru9MPy(sw?{zz2QFmfD8&5X3R9OJ$9umIgad!U}=Ix963u?oJkaPR6;J z4OHxR(jTNhlTAOz0eo4#0>r_mPOB9x`ET>^<61(WaD=~1`J*PNFj@zpTvP@< zKLT-imIWM>v1W8{&1t9D?^;sAfm%t|41a6|17SiA&$ix|?x$tmi1ChcAb^>tH!3q* z*@^;1I^kBM?jNL{*UtUBLilz_Q_Jjo`jSvu+hVW@R7lyJ`9$bmWTHgUdwl(?0eVJP z;lL#^?SnvG?5dHEEWys(r+M(*)|b2t(*PA*d;u4T8xTz=>?Klucie<0tA?H8vOIVjGjK(9cu~m5Ru!`6&WZ`w)vOtJOxKm*T9!- zIbX)$zciT3IB!>NpIP&GKcKr-{;>`=7b<^~ww^qmI&Ov$Y~Lrhw8~bn25EJ;QL-SN z!n*S{XIADOA6LN5oQJ-S-xlYY52$+;JFpG$BXjmaI}+kt(wM}v=-akac^P5$*AE@18zb7+&w3+3? zBiBi5Av6v{Ibmhln9dgYkU#v>ecR;oL3QfEB@?d#+C{yr=Uf2@nzLf~{~r{8JHg!N zaP}omGh#xd*Sr245yas*>9bucgsKTz?rH2D1%$uz_+tRf4X?sZwwp4nMnWI;Q_N8O zr;cv^6URYkzxl_}5Lv!I%)q0J2E2(#A1e~Mq#;o?8hC?o_N4jeWW#X^v6$PSoagdg cg(svA7G)4#olDZh!!m$|ijFc;@j=Lc0UFJKNB{r; diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008.png deleted file mode 100644 index e6e264aeea554c5d1ffd71f2d1a5886358978853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmeAS@N?(olHy`uVBq!ia0y~yV0-{%AK+jDlEJy^4h#$|{+=$5Ar*{o4;prDOP6H3 z@cNw(m!Z;1ovm^gqc((Y_`Pxa#<{FFb~3#VVdlE&B=!A+=w>$dH%H3jQ@c4RRhHo>sF(%B=h1XVyCs!XbuG2~{(q|}|M&N?{Gadn_5Z$3 zkFODX@Ob9(=k7ON)&Ku_J-`0z;r)L;iZj~H11Vn%QvUC*{r`{G@3a1>c=qzApjdT% zb?u%St`8s2T>h-A^X=caUll(^AZA3o`TO?k$4{CEjvM=*@859a_wCn@p9VMdr_Y-w npSbb+_Up$_FK3WH|DSPzddSmh3J!t55{ALk)z4*}Q$iB}IyV?? diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008_expect.png deleted file mode 100644 index 260aa58b78c19a36dda9327254c4f6c8b52e5c3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5496 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 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010_expect.png deleted file mode 100644 index 6d75e4363c91ce5ac26798864e115bc6191981db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3604 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 HwF>zc8@$@$ diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json deleted file mode 100644 index bc5b8ea2fb..0000000000 --- a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json +++ /dev/null @@ -1,1394 +0,0 @@ -{ - "schema_version": 2, - "name": "golden-triage", - "recording_id": "39761205fe29461eab814e2d202d6f29", - "contains_phi": false, - "phi_scrubbed": false, - "encrypted": false, - "created_at": "2026-10-24T19:14:58.652113+00:00", - "viewport": [ - 1280, - 800 - ], - "params": { - "note": "Golden triage booking three months" - }, - "param_specs": { - "note": { - "name": "note", - "type": "string", - "example": "Golden triage booking three months", - "required": true, - "choices": [] - } - }, - "secret_params": [], - "steps": [ - { - "id": "step_000", - "intent": "click recorded visual target", - "action": "click", - "anchor": { - "template": "templates/step_000.png", - "structural": { - "selector": "#username", - "frame_path": null, - "role": "textbox", - "name": "Username", - "automation_id": null, - "window_name": null - }, - "region": [ - 134, - 163, - 160, - 64 - ], - "click_point": [ - 214, - 195 - ], - "ocr_text": null, - "context_text": null, - "structured_identity": null, - "identity_template": { - "schema_version": 1, - "salt": "911a5096acf288523d50080fd3dd74de", - "band_len": 0, - "tokens": [], - "concats": [], - "structured": "5b3e20fe152a1c42", - "signal_hashes": { - "structured|exact|": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc,casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086" - }, - "param_token_indices": {}, - "rests_on_confusable_identifier": false - }, - "identifier_crop": null, - "identifier_region": null, - "landmarks": [ - { - "relation": "above", - "ocr_text": "Sign in to MockMed", - "distance_px": 130, - "dx_px": 76, - "dy_px": 106 - }, - { - "relation": "left_of", - "ocr_text": "Username", - "distance_px": 132, - "dx_px": 129, - "dy_px": 29 - } - ], - "search_pad": 80 - }, - "text": null, - "param": null, - "secret": false, - "field_label": null, - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [ - { - "kind": "region_stable", - "text": null, - "region": [ - 17, - 145, - 394, - 126 - ], - "phash": "e060e8e01f0f2f9f", - "phash_tolerance": 16, - "timeout_s": 5.0, - "template": "templates/step_000_expect.png" - } - ], - "effects": [], - "api_binding": null, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": true, - "identity_unarmed_reason": null, - "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - }, - { - "id": "step_001", - "intent": "type 'nurse.demo'", - "action": "type", - "anchor": null, - "text": "nurse.demo", - "param": null, - "secret": false, - "field_label": "Username", - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [ - { - "kind": "region_stable", - "text": null, - "region": [ - 27, - 156, - 147, - 76 - ], - "phash": "c3c969c2d23cbc36", - "phash_tolerance": 16, - "timeout_s": 5.0, - "template": "templates/step_001_expect.png" - }, - { - "kind": "text_present", - "text": "nurse.demo", - "region": null, - "phash": null, - "phash_tolerance": 8, - "timeout_s": 5.0, - "template": null - } - ], - "effects": [], - "api_binding": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": null, - "identity_unarmed_reason": null, - "identifier_crop_missing_reason": null, - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - }, - { - "id": "step_002", - "intent": "click recorded visual target", - "action": "click", - "anchor": { - "template": "templates/step_002.png", - "structural": { - "selector": "#password", - "frame_path": null, - "role": "textbox", - "name": "Password", - "automation_id": null, - "window_name": null - }, - "region": [ - 134, - 232, - 160, - 64 - ], - "click_point": [ - 214, - 264 - ], - "ocr_text": null, - "context_text": null, - "structured_identity": null, - "identity_template": null, - "identifier_crop": null, - "identifier_region": null, - "landmarks": [ - { - "relation": "left_of", - "ocr_text": "Sign In", - "distance_px": 112, - "dx_px": 94, - "dy_px": -60 - }, - { - "relation": "left_of", - "ocr_text": "Password", - "distance_px": 132, - "dx_px": 129, - "dy_px": 30 - } - ], - "search_pad": 80 - }, - "text": null, - "param": null, - "secret": false, - "field_label": null, - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [ - { - "kind": "region_stable", - "text": null, - "region": [ - 17, - 145, - 394, - 169 - ], - "phash": "e0e01e3c7c1f2fe0", - "phash_tolerance": 16, - "timeout_s": 5.0, - "template": "templates/step_002_expect.png" - } - ], - "effects": [], - "api_binding": null, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": false, - "identity_unarmed_reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", - "identifier_crop_missing_reason": "identity is not armed on this step (see identity_unarmed_reason) — there is no identity evidence to crop", - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - }, - { - "id": "step_003", - "intent": "type 'mockmed-demo-pass'", - "action": "type", - "anchor": null, - "text": "mockmed-demo-pass", - "param": null, - "secret": false, - "field_label": "Password", - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [ - { - "kind": "region_stable", - "text": null, - "region": [ - 26, - 229, - 159, - 69 - ], - "phash": "c2c1cdc9dec1a8b6", - "phash_tolerance": 16, - "timeout_s": 5.0, - "template": "templates/step_003_expect.png" - } - ], - "effects": [], - "api_binding": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": null, - "identity_unarmed_reason": null, - "identifier_crop_missing_reason": null, - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - }, - { - "id": "step_004", - "intent": "click 'Sign In'", - "action": "click", - "anchor": { - "template": "templates/step_004.png", - "structural": { - "selector": "#signin", - "frame_path": null, - "role": "button", - "name": "Sign In", - "automation_id": null, - "window_name": null - }, - "region": [ - 39, - 292, - 160, - 64 - ], - "click_point": [ - 119, - 324 - ], - "ocr_text": "Sign In", - "context_text": null, - "structured_identity": null, - "identity_template": null, - "identifier_crop": null, - "identifier_region": null, - "landmarks": [ - { - "relation": "above", - "ocr_text": "Password", - "distance_px": 95, - "dx_px": 34, - "dy_px": 89 - }, - { - "relation": "above", - "ocr_text": "nurse.demo", - "distance_px": 130, - "dx_px": 19, - "dy_px": 129 - } - ], - "search_pad": 80 - }, - "text": null, - "param": null, - "secret": false, - "field_label": null, - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [ - { - "kind": "region_stable", - "text": null, - "region": [ - 0, - 87, - 968, - 314 - ], - "phash": "f7f038e0e868ec68", - "phash_tolerance": 16, - "timeout_s": 5.0, - "template": "templates/step_004_expect.png" - }, - { - "kind": "text_present", - "text": "Sam Specimen", - "region": null, - "phash": null, - "phash_tolerance": 8, - "timeout_s": 5.0, - "template": null - } - ], - "effects": [], - "api_binding": null, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": false, - "identity_unarmed_reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", - "identifier_crop_missing_reason": "identity is not armed on this step (see identity_unarmed_reason) — there is no identity evidence to crop", - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - }, - { - "id": "step_005", - "intent": "click 'Open'", - "action": "click", - "anchor": { - "template": "templates/step_005.png", - "structural": { - "selector": "#open-p1", - "frame_path": null, - "role": "button", - "name": "Open", - "automation_id": null, - "window_name": null - }, - "region": [ - 695, - 154, - 160, - 64 - ], - "click_point": [ - 775, - 186 - ], - "ocr_text": "Open", - "context_text": null, - "structured_identity": null, - "identity_template": { - "schema_version": 1, - "salt": "911a5096acf288523d50080fd3dd74de", - "band_len": 30, - "tokens": [ - { - "c": "9e8e1645fdec34d0", - "r": "9e8e1645fdec34d0", - "n": 4, - "alpha": true, - "name": true, - "digit": false, - "idsh": false, - "glyph": false, - "gen": false - }, - { - "c": "0d68e18d565ed360", - "r": "0d68e18d565ed360", - "n": 6, - "alpha": true, - "name": true, - "digit": false, - "idsh": false, - "glyph": false, - "gen": false - }, - { - "c": "6b80bb4112f844a5", - "r": "6b80bb4112f844a5", - "n": 4, - "alpha": true, - "name": true, - "digit": false, - "idsh": false, - "glyph": false, - "gen": false - }, - { - "c": "20338486779884fb", - "r": "4c5b884487197d9d", - "n": 4, - "alpha": true, - "name": true, - "digit": false, - "idsh": false, - "glyph": false, - "gen": false - }, - { - "c": "8a2c79da10756add", - "r": "8a2c79da10756add", - "n": 8, - "alpha": true, - "name": true, - "digit": false, - "idsh": false, - "glyph": false, - "gen": false - }, - { - "c": "bd8a1dea16c274d2", - "r": "63c0d27e3746e3af", - "n": 4, - "alpha": true, - "name": true, - "digit": false, - "idsh": false, - "glyph": false, - "gen": false - } - ], - "concats": [ - { - "i": 0, - "size": 2, - "c": "69675b2937c1909a", - "r": "69675b2937c1909a", - "digit": false, - "name": true, - "n": 10 - }, - { - "i": 0, - "size": 3, - "c": "dbe64c04bc7185b6", - "r": "dbe64c04bc7185b6", - "digit": false, - "name": true, - "n": 14 - }, - { - "i": 0, - "size": 4, - "c": "56018def605c583a", - "r": "6df16f469c1ab4d1", - "digit": false, - "name": true, - "n": 18 - }, - { - "i": 1, - "size": 2, - "c": "b821d403e41aaaff", - "r": "b821d403e41aaaff", - "digit": false, - "name": true, - "n": 10 - }, - { - "i": 1, - "size": 3, - "c": "30f085740d300e1d", - "r": "8eebae20ffb49862", - "digit": false, - "name": true, - "n": 14 - }, - { - "i": 1, - "size": 4, - "c": "276dd340e53188c6", - "r": "f5973e32249138de", - "digit": false, - "name": true, - "n": 22 - }, - { - "i": 2, - "size": 2, - "c": "788ba58ce0f8ff18", - "r": "9da2a27f3ea7ac32", - "digit": false, - "name": true, - "n": 8 - }, - { - "i": 2, - "size": 3, - "c": "8fca29d0fff9f063", - "r": "1d29319cd27831c2", - "digit": false, - "name": true, - "n": 16 - }, - { - "i": 2, - "size": 4, - "c": "37e34615487ed058", - "r": "11229dedf7c779e4", - "digit": false, - "name": true, - "n": 20 - }, - { - "i": 3, - "size": 2, - "c": "12093ff1c800b92c", - "r": "285db341ce41190d", - "digit": false, - "name": true, - "n": 12 - }, - { - "i": 3, - "size": 3, - "c": "fe555202397f9f9c", - "r": "badcb77d3805aa8c", - "digit": false, - "name": true, - "n": 16 - }, - { - "i": 4, - "size": 2, - "c": "be66deb82e3efd44", - "r": "f620a3d6cc3f4d08", - "digit": false, - "name": true, - "n": 12 - } - ], - "structured": "eddd26191036238d", - "signal_hashes": { - "structured|exact|": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "captured_context|exact|": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241" - }, - "param_token_indices": {}, - "rests_on_confusable_identifier": false - }, - "identifier_crop": null, - "identifier_region": null, - "landmarks": [ - { - "relation": "above", - "ocr_text": "Action", - "distance_px": 52, - "dx_px": 21, - "dy_px": 48 - }, - { - "relation": "below", - "ocr_text": "Open", - "distance_px": 58, - "dx_px": -2, - "dy_px": -58 - } - ], - "search_pad": 80 - }, - "text": null, - "param": null, - "secret": false, - "field_label": null, - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [ - { - "kind": "region_stable", - "text": null, - "region": [ - 0, - 43, - 968, - 318 - ], - "phash": "fae083ffbc08183c", - "phash_tolerance": 16, - "timeout_s": 5.0, - "template": "templates/step_005_expect.png" - }, - { - "kind": "text_present", - "text": "Jane Sample — MRN P1 — DOB 1980-01-01", - "region": null, - "phash": null, - "phash_tolerance": 8, - "timeout_s": 5.0, - "template": null - } - ], - "effects": [], - "api_binding": null, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": true, - "identity_unarmed_reason": null, - "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - }, - { - "id": "step_006", - "intent": "click 'New Encounter'", - "action": "click", - "anchor": { - "template": "templates/step_006.png", - "structural": { - "selector": "#new-encounter", - "frame_path": null, - "role": "button", - "name": "New Encounter", - "automation_id": null, - "window_name": null - }, - "region": [ - 34, - 127, - 160, - 64 - ], - "click_point": [ - 114, - 159 - ], - "ocr_text": "New Encounter", - "context_text": null, - "structured_identity": null, - "identity_template": { - "schema_version": 1, - "salt": "911a5096acf288523d50080fd3dd74de", - "band_len": 0, - "tokens": [], - "concats": [], - "structured": "c181cef4a5621cab", - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e" - }, - "param_token_indices": {}, - "rests_on_confusable_identifier": false - }, - "identifier_crop": null, - "identifier_region": null, - "landmarks": [ - { - "relation": "below", - "ocr_text": "Encounters", - "distance_px": 62, - "dx_px": 34, - "dy_px": -52 - }, - { - "relation": "below", - "ocr_text": "No encounters yet.", - "distance_px": 85, - "dx_px": 24, - "dy_px": -82 - } - ], - "search_pad": 80 - }, - "text": null, - "param": null, - "secret": false, - "field_label": null, - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [ - { - "kind": "region_stable", - "text": null, - "region": [ - 0, - 232, - 696, - 219 - ], - "phash": "ff7fc16a622262c0", - "phash_tolerance": 16, - "timeout_s": 5.0, - "template": "templates/step_006_expect.png" - }, - { - "kind": "text_present", - "text": "Encounter Type", - "region": null, - "phash": null, - "phash_tolerance": 8, - "timeout_s": 5.0, - "template": null - } - ], - "effects": [], - "api_binding": null, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": true, - "identity_unarmed_reason": null, - "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - }, - { - "id": "step_007", - "intent": "click recorded visual target", - "action": "click", - "anchor": { - "template": "templates/step_007.png", - "structural": { - "selector": "#type-triage", - "frame_path": null, - "role": "button", - "name": "Triage", - "automation_id": null, - "window_name": null - }, - "region": [ - 5, - 182, - 160, - 64 - ], - "click_point": [ - 85, - 214 - ], - "ocr_text": null, - "context_text": null, - "structured_identity": null, - "identity_template": { - "schema_version": 1, - "salt": "911a5096acf288523d50080fd3dd74de", - "band_len": 0, - "tokens": [], - "concats": [], - "structured": "c181cef4a5621cab", - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e" - }, - "param_token_indices": {}, - "rests_on_confusable_identifier": false - }, - "identifier_crop": null, - "identifier_region": null, - "landmarks": [ - { - "relation": "below", - "ocr_text": "Note", - "distance_px": 71, - "dx_px": 44, - "dy_px": -56 - }, - { - "relation": "above", - "ocr_text": "New Encounter", - "distance_px": 76, - "dx_px": -27, - "dy_px": 71 - } - ], - "search_pad": 80 - }, - "text": null, - "param": null, - "secret": false, - "field_label": null, - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [ - { - "kind": "region_stable", - "text": null, - "region": [ - 0, - 163, - 177, - 102 - ], - "phash": "88c2f2297d2da739", - "phash_tolerance": 16, - "timeout_s": 5.0, - "template": "templates/step_007_expect.png" - } - ], - "effects": [], - "api_binding": null, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": true, - "identity_unarmed_reason": null, - "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - }, - { - "id": "step_008", - "intent": "click recorded visual target", - "action": "click", - "anchor": { - "template": "templates/step_008.png", - "structural": { - "selector": "#note", - "frame_path": null, - "role": "textbox", - "name": "Note", - "automation_id": null, - "window_name": null - }, - "region": [ - 104, - 254, - 480, - 192 - ], - "click_point": [ - 344, - 350 - ], - "ocr_text": null, - "context_text": null, - "structured_identity": null, - "identity_template": { - "schema_version": 1, - "salt": "911a5096acf288523d50080fd3dd74de", - "band_len": 0, - "tokens": [], - "concats": [], - "structured": "c181cef4a5621cab", - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e" - }, - "param_token_indices": {}, - "rests_on_confusable_identifier": false - }, - "identifier_crop": null, - "identifier_region": null, - "landmarks": [ - { - "relation": "left_of", - "ocr_text": "Consult", - "distance_px": 194, - "dx_px": 138, - "dy_px": 137 - }, - { - "relation": "above", - "ocr_text": "Jane Sample — MRN P1 — DOB 1980-01-01", - "distance_px": 286, - "dx_px": 135, - "dy_px": 252 - } - ], - "search_pad": 80 - }, - "text": null, - "param": null, - "secret": false, - "field_label": null, - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [ - { - "kind": "region_stable", - "text": null, - "region": [ - 0, - 249, - 696, - 202 - ], - "phash": "ff3fd53e7a002a00", - "phash_tolerance": 16, - "timeout_s": 5.0, - "template": "templates/step_008_expect.png" - } - ], - "effects": [], - "api_binding": null, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": true, - "identity_unarmed_reason": null, - "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - }, - { - "id": "step_009", - "intent": "type ", - "action": "type", - "anchor": null, - "text": "Golden triage booking three months", - "param": "note", - "secret": false, - "field_label": "Note", - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [], - "effects": [], - "api_binding": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": null, - "identity_unarmed_reason": null, - "identifier_crop_missing_reason": null, - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - }, - { - "id": "step_010", - "intent": "click 'Save Encounter'", - "action": "click", - "anchor": { - "template": "templates/step_010.png", - "structural": { - "selector": "#save-encounter", - "frame_path": null, - "role": "button", - "name": "Save Encounter", - "automation_id": null, - "window_name": null - }, - "region": [ - 54, - 425, - 160, - 64 - ], - "click_point": [ - 134, - 457 - ], - "ocr_text": "Save Encounter", - "context_text": null, - "structured_identity": null, - "identity_template": { - "schema_version": 1, - "salt": "911a5096acf288523d50080fd3dd74de", - "band_len": 0, - "tokens": [], - "concats": [], - "structured": "c181cef4a5621cab", - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e" - }, - "param_token_indices": {}, - "rests_on_confusable_identifier": false - }, - "identifier_crop": null, - "identifier_region": null, - "landmarks": [ - { - "relation": "above", - "ocr_text": "Note", - "distance_px": 210, - "dx_px": 94, - "dy_px": 188 - }, - { - "relation": "above", - "ocr_text": "Consult", - "distance_px": 254, - "dx_px": -72, - "dy_px": 244 - } - ], - "search_pad": 80 - }, - "text": null, - "param": null, - "secret": false, - "field_label": null, - "selection_commit_key": null, - "selection_region": null, - "key": null, - "modifiers": [], - "drag_end_anchor": null, - "scroll_dx": null, - "scroll_dy": null, - "expect": [ - { - "kind": "region_stable", - "text": null, - "region": [ - 0, - 229, - 696, - 56 - ], - "phash": "f80781f8871e9e0f", - "phash_tolerance": 16, - "timeout_s": 5.0, - "template": "templates/step_010_expect.png" - }, - { - "kind": "text_present", - "text": "Encounters", - "region": null, - "phash": null, - "phash_tolerance": 8, - "timeout_s": 5.0, - "template": null - } - ], - "effects": [], - "api_binding": null, - "risk": "irreversible", - "risk_explanation": "retained action context names a consequential state change", - "risk_review_required": false, - "wait_until": null, - "guard": null, - "read": null, - "read_gate": null, - "surface": null, - "opens": [], - "surface_origin": null, - "closes_surface": false, - "dialog": null, - "timeout_s": 10.0, - "identity_armed": true, - "identity_unarmed_reason": null, - "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", - "hover": null, - "submit_binding": null, - "submit_binding_unbound_reason": null - } - ], - "interstitials": [], - "program": null, - "subflows": {}, - "data_sources": {}, - "manifest": { - "schema_version": 2, - "content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "file_hashes": { - "templates/layout_fingerprint.json": "1e07a218d3cbbe592419e702af84049e04c308ee3e1c1d78444a0637847355e5", - "templates/step_000.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", - "templates/step_000_expect.png": "29e54a82c2f7df3554d2487d9bad748fc0abd86191416d39343c1eb866c486d1", - "templates/step_001_expect.png": "e2e203b8bbc4bf0a31aebd56a1303077243a3ff602708bbe9eae46d45460ebdf", - "templates/step_002.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", - "templates/step_002_expect.png": "68a0aa31d3b7fba1139c05d729f49252174481dfca5a8693cb5b6440f8976fe6", - "templates/step_003_expect.png": "3068277f51d8dfbfd1ba50b31afee93e76dcacb67b11d4610b6dcdf681597eed", - "templates/step_004.png": "d0082e004cf2a2c03668ca1c6630001eda69bdcf169d05d58839dcbddbc56773", - "templates/step_004_expect.png": "230b56796f24b36637d77ba395e6031bf39cbfab898da61c1c41f23f1b57e396", - "templates/step_005.png": "e38e9760b48c63a08e6618b2624c6796620ce58b5f7d7a2ff63f678aa25bb3e2", - "templates/step_005_expect.png": "76696ff4ec85753e45b5378638fa7c19f4f7fddb1cf35ee99cf6baee11844803", - "templates/step_006.png": "97568daf732ecb6109d858dd09cdcf78b031830c819b6f4b6a50ae60a72ada10", - "templates/step_006_expect.png": "d0e310e05830227867e94a9b288e6265fa28c375558d58555e79bfb002095134", - "templates/step_007.png": "7f6817a19ffe49b31a05a70a23f3fcdb2a71b93b3f4ec6a7b997126b4e0ff16c", - "templates/step_007_expect.png": "ac9ee10ba2354bca0db66fbf3bf93ca80b62a650d3f19e8b71dcc6038a4d057f", - "templates/step_008.png": "b6b06e1ed6155ed74899d0a42bf23df672bf930bfb6f830ab69e6d89ca6fedd3", - "templates/step_008_expect.png": "d1f13cae697465c2ec07310adc38d7780f7d7c0146257679b7c559716b992a31", - "templates/step_010.png": "31193461982dc5b438be9e459f1ce17f2b5dca4109c206428c7d8135bf60643a", - "templates/step_010_expect.png": "5fcb6891641b02953b9baeaa75581a3a9fa1db6c7bd39d432f1d4d06d04c8856" - }, - "provenance": { - "compiler_version": "2.3.0", - "source_recording_sha256": null, - "compiler_config_sha256": "43f5f0d9a4d87c9637138dc24dcf8a163094ab400b760cee8c2567a0760be695", - "created_at": "2026-10-24T19:14:58.653368+00:00", - "policy_name": null, - "certified": false, - "certification_status": null, - "certified_at": null, - "expires_at": null, - "certification_invalidated_at": null, - "certification_invalidation_reason": null, - "governed_authorization_template": null - }, - "encrypted": false - } -} \ No newline at end of file diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py deleted file mode 100644 index 810400521c..0000000000 --- a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py +++ /dev/null @@ -1,79 +0,0 @@ -"""Generated by openadapt-flow. Human-readable rendering of -workflow 'golden-triage' — for code review only; the replayer -executes workflow.json, not this file.""" - -WORKFLOW_NAME = 'golden-triage' -RECORDING_ID = '39761205fe29461eab814e2d202d6f29' -PARAMS = {'note': 'Golden triage booking three months'} # param -> example/default value - - -def run(flow, params=PARAMS): - # step_000: click recorded visual target [reversible] - # landmark: 'Sign in to MockMed' (above, 130px) - # landmark: 'Username' (left_of, 132px) - # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored - flow.click(template='templates/step_000.png', click_point=(214, 195), region=(134, 163, 160, 64)) - # expect region_stable region=(17, 145, 394, 126) phash='e060e8e01f0f2f9f' (tol 16) - - # step_001: type 'nurse.demo' [reversible] - flow.type_text('nurse.demo') - # expect region_stable region=(27, 156, 147, 76) phash='c3c969c2d23cbc36' (tol 16) - # expect text_present text='nurse.demo' - - # step_002: click recorded visual target [reversible] - # landmark: 'Sign In' (left_of, 112px) - # landmark: 'Password' (left_of, 132px) - flow.click(template='templates/step_002.png', click_point=(214, 264), region=(134, 232, 160, 64)) - # expect region_stable region=(17, 145, 394, 169) phash='e0e01e3c7c1f2fe0' (tol 16) - - # step_003: type 'mockmed-demo-pass' [reversible] - flow.type_text('mockmed-demo-pass') - # expect region_stable region=(26, 229, 159, 69) phash='c2c1cdc9dec1a8b6' (tol 16) - - # step_004: click 'Sign In' [reversible] - # landmark: 'Password' (above, 95px) - # landmark: 'nurse.demo' (above, 130px) - flow.click(template='templates/step_004.png', click_point=(119, 324), region=(39, 292, 160, 64), ocr_text='Sign In') - # expect region_stable region=(0, 87, 968, 314) phash='f7f038e0e868ec68' (tol 16) - # expect text_present text='Sam Specimen' - - # step_005: click 'Open' [reversible] - # landmark: 'Action' (above, 52px) - # landmark: 'Open' (below, 58px) - # identity: armed via PHI-free salted-hash template (6 band tokens, structured); no patient identifier stored - flow.click(template='templates/step_005.png', click_point=(775, 186), region=(695, 154, 160, 64), ocr_text='Open') - # expect region_stable region=(0, 43, 968, 318) phash='fae083ffbc08183c' (tol 16) - # expect text_present text='Jane Sample — MRN P1 — DOB 1980-01-01' - - # step_006: click 'New Encounter' [reversible] - # landmark: 'Encounters' (below, 62px) - # landmark: 'No encounters yet.' (below, 85px) - # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored - flow.click(template='templates/step_006.png', click_point=(114, 159), region=(34, 127, 160, 64), ocr_text='New Encounter') - # expect region_stable region=(0, 232, 696, 219) phash='ff7fc16a622262c0' (tol 16) - # expect text_present text='Encounter Type' - - # step_007: click recorded visual target [reversible] - # landmark: 'Note' (below, 71px) - # landmark: 'New Encounter' (above, 76px) - # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored - flow.click(template='templates/step_007.png', click_point=(85, 214), region=(5, 182, 160, 64)) - # expect region_stable region=(0, 163, 177, 102) phash='88c2f2297d2da739' (tol 16) - - # step_008: click recorded visual target [reversible] - # landmark: 'Consult' (left_of, 194px) - # landmark: 'Jane Sample — MRN P1 — DOB 1980-01-01' (above, 286px) - # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored - flow.click(template='templates/step_008.png', click_point=(344, 350), region=(104, 254, 480, 192)) - # expect region_stable region=(0, 249, 696, 202) phash='ff3fd53e7a002a00' (tol 16) - - # step_009: type [reversible] - flow.type_text(params['note']) - - # step_010: click 'Save Encounter' [irreversible] - # landmark: 'Note' (above, 210px) - # landmark: 'Consult' (above, 254px) - # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored - flow.click(template='templates/step_010.png', click_point=(134, 457), region=(54, 425, 160, 64), ocr_text='Save Encounter') - # expect region_stable region=(0, 229, 696, 56) phash='f80781f8871e9e0f' (tol 16) - # expect text_present text='Encounters' diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json b/packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json deleted file mode 100644 index a8afcc6364..0000000000 --- a/packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json +++ /dev/null @@ -1,741 +0,0 @@ -{ - "app_state": { - "banner": null, - "enc_item": null, - "hash": "#tasks" - }, - "artifacts": { - "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", - "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_004_after.png": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14", - "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_005_after.png": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14", - "steps/step_005_before.png": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14" - }, - "environment": { - "platform": "linux", - "playwright": "1.64.1" - }, - "report": { - "approved_unverified_effect_step_ids": [], - "attended_program_transition_evidence": [], - "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "business_decision_evidence": [], - "canceled": false, - "change_ledger": [], - "effect_journal": [], - "est_model_cost_usd": 0.0, - "execution_completed": false, - "execution_entry_url": null, - "execution_origin": null, - "execution_outcome": "HALTED", - "execution_profile": "demo", - "execution_target_kind": null, - "external_network_calls": "unknown", - "governed_approval_source": null, - "governed_authorization_created_at": null, - "governed_authorization_id": null, - "governed_authorized_effect_contracts": {}, - "governed_minimum_effect_tier": null, - "governed_policy_contract_sha256": null, - "governed_policy_name": null, - "governed_qualification_campaign_id_sha256": null, - "governed_qualification_case_action_paths": {}, - "governed_qualification_case_id_sha256": null, - "governed_qualification_case_input_sha256": null, - "governed_qualification_case_kind": null, - "governed_qualification_fault_driver_contract_sha256": null, - "governed_qualification_fault_driver_id": null, - "governed_qualification_fault_driver_key_id": null, - "governed_qualification_fault_step_id_sha256": null, - "governed_qualification_project_contract_sha256": null, - "governed_qualification_project_id": null, - "governed_qualification_project_revision": null, - "governed_qualification_run_id_sha256": null, - "governed_qualified_effect_requirements": [], - "governed_runtime_inputs_digest": null, - "halt": { - "completed_intents": [ - "click recorded visual target", - "type 'nurse.demo'", - "click recorded visual target", - "type 'mockmed-demo-pass'", - "click 'Sign In'" - ], - "intent": "click 'Open'", - "observed_texts": [ - "MockMed", - "Clinical demo — all data is fake", - "Referral Tasks", - "Patient", - "Reason", - "Priority", - "Action", - "Pat Placeholder", - "Orthopedics intake", - "Low", - "Open", - "Robin Redacted", - "Neurology referral", - "Medium", - "Casey Control", - "Endocrine consult", - "Drew Dataset", - "Physio assessment", - "Jane Sample", - "Knee pain referral", - "High", - "Alex Testcase", - "Cardiology follow-up", - "Sam Specimen", - "Dermatology consult" - ], - "outcome": "halt", - "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 0.99) but its surrounding text does not match the recorded target's — expected '', observed 'Pat PlaceholderOrthopedics intakeLow' (coverage 0.00) — refusing to act; run aborted", - "state_id": "step_005" - }, - "heal_count": 0, - "idempotency_key": null, - "idempotent_replay": false, - "identity_applicable_steps": 8, - "identity_armed_steps": 6, - "identity_unarmed": [ - { - "intent": "click recorded visual target", - "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", - "step_id": "step_002" - }, - { - "intent": "click 'Sign In'", - "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", - "step_id": "step_004" - } - ], - "loop_iterations": [], - "model_calls": 0, - "observed_application_sha256": null, - "observed_application_version_sha256": null, - "observed_environment_binding_sha256": null, - "observed_environment_digest": null, - "observed_session_sha256": null, - "outcome_envelope": { - "compensation_actions": 0, - "evidence_classes": [ - "identity", - "postcondition" - ], - "execution_completed": false, - "external_network_calls": "unknown", - "model_calls": 0, - "outcome": "HALTED", - "passed_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 9 - }, - "postcondition_evidence": [ - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", - "result_index": 0, - "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", - "step_index": 0, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", - "result_index": 2, - "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", - "step_index": 2, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "unverifiable", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "unverifiable", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - } - ], - "production_eligible": false, - "profile": "demo", - "required_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 11 - }, - "version": "openadapt.execution-outcome/v1", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", - "params": { - "note": "Golden triage booking three months" - }, - "production_eligible": false, - "program_exception_evidence": [], - "program_transition_evidence": [], - "qualification_environment_observer_contract_sha256": null, - "qualification_environment_observer_id": null, - "qualification_evidence_only": false, - "qualification_fault_mutations": [], - "readback": null, - "recorded_surface": null, - "render_scale": null, - "required_identity_step_ids": [], - "results": [ - { - "actuation": null, - "after_png": "steps/step_000_after.png", - "api_fallback": null, - "before_png": "steps/step_000_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Username Password Sign In", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 195 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_000", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_001_after.png", - "api_fallback": null, - "before_png": "steps/step_001_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'nurse.demo'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_001", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_002_after.png", - "api_fallback": null, - "before_png": "steps/step_002_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 264 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_002", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_003_after.png", - "api_fallback": null, - "before_png": "steps/step_003_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'mockmed-demo-pass'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_003", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_004_after.png", - "api_fallback": null, - "before_png": "steps/step_004_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Sign In'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 119, - 324 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_004", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_005_after.png", - "api_fallback": null, - "before_png": "steps/step_005_before.png", - "delivery_attempted": false, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 0.99) but its surrounding text does not match the recorded target's — expected '', observed 'Pat PlaceholderOrthopedics intakeLow' (coverage 0.00) — refusing to act; run aborted", - "exception_handled": false, - "failure_category": "safety_halt", - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 0.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Pat PlaceholderOrthopedics intakeLow", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "mismatch" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Open'", - "interstitial_actions": [], - "ok": false, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": null, - "program_scope": [], - "resolution": { - "confidence": 0.995, - "elapsed_ms": "", - "point": [ - 777, - 186 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": true, - "safety_refusal_evidence": { - "code": "identity_conflict", - "detector_input_sha256": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14", - "stage": "identity_verification" - }, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_005", - "submit_binding_verified": null, - "timings": "" - } - ], - "run_id_sha256": "", - "rung_counts": { - "template": 3 - }, - "screenshots_may_leave_box": false, - "source_recording_sha256": null, - "started_at": "", - "success": false, - "surface_override": false, - "terminal_outcome": null, - "total_ms": "", - "transaction_billable": false, - "transaction_outcome": "REJECTED_POLICY", - "transaction_platform_fault": false, - "visited_states": [], - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", - "workflow_name": "golden-triage" - }, - "trace": [ - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - }, - { - "args": [ - 210, - 195 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "nurse.demo" - ], - "call": "type_text" - }, - { - "args": [ - 210, - 264 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "mockmed-demo-pass" - ], - "call": "type_text" - }, - { - "args": [ - 119, - 324 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "call": "cancel_guarded_coordinate" - }, - { - "call": "cancel_guarded_keyboard" - }, - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - } - ] -} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json b/packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json deleted file mode 100644 index e65e113ae7..0000000000 --- a/packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json +++ /dev/null @@ -1,734 +0,0 @@ -{ - "app_state": { - "banner": null, - "enc_item": null, - "hash": "#tasks" - }, - "artifacts": { - "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", - "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_004_after.png": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1", - "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_005_after.png": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1", - "steps/step_005_before.png": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1" - }, - "environment": { - "platform": "linux", - "playwright": "1.64.1" - }, - "report": { - "approved_unverified_effect_step_ids": [], - "attended_program_transition_evidence": [], - "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "business_decision_evidence": [], - "canceled": false, - "change_ledger": [], - "effect_journal": [], - "est_model_cost_usd": 0.0, - "execution_completed": false, - "execution_entry_url": null, - "execution_origin": null, - "execution_outcome": "HALTED", - "execution_profile": "demo", - "execution_target_kind": null, - "external_network_calls": "unknown", - "governed_approval_source": null, - "governed_authorization_created_at": null, - "governed_authorization_id": null, - "governed_authorized_effect_contracts": {}, - "governed_minimum_effect_tier": null, - "governed_policy_contract_sha256": null, - "governed_policy_name": null, - "governed_qualification_campaign_id_sha256": null, - "governed_qualification_case_action_paths": {}, - "governed_qualification_case_id_sha256": null, - "governed_qualification_case_input_sha256": null, - "governed_qualification_case_kind": null, - "governed_qualification_fault_driver_contract_sha256": null, - "governed_qualification_fault_driver_id": null, - "governed_qualification_fault_driver_key_id": null, - "governed_qualification_fault_step_id_sha256": null, - "governed_qualification_project_contract_sha256": null, - "governed_qualification_project_id": null, - "governed_qualification_project_revision": null, - "governed_qualification_run_id_sha256": null, - "governed_qualified_effect_requirements": [], - "governed_runtime_inputs_digest": null, - "halt": { - "completed_intents": [ - "click recorded visual target", - "type 'nurse.demo'", - "click recorded visual target", - "type 'mockmed-demo-pass'", - "click 'Sign In'" - ], - "intent": "click 'Open'", - "observed_texts": [ - "MockMed", - "Clinical demo — all data is fake", - "Referral Tasks", - "Patient", - "Reason", - "Priority", - "Action", - "Taylor Duplicate", - "Knee pain referral", - "High", - "Open", - "Jane Sample", - "Alex Testcase", - "Cardiology follow-up", - "Medium", - "Sam Specimen", - "Dermatology consult", - "Low" - ], - "outcome": "halt", - "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Taylor DuplicateKnee pain referralHigh' (coverage 0.00) — refusing to act; run aborted", - "state_id": "step_005" - }, - "heal_count": 0, - "idempotency_key": null, - "idempotent_replay": false, - "identity_applicable_steps": 8, - "identity_armed_steps": 6, - "identity_unarmed": [ - { - "intent": "click recorded visual target", - "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", - "step_id": "step_002" - }, - { - "intent": "click 'Sign In'", - "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", - "step_id": "step_004" - } - ], - "loop_iterations": [], - "model_calls": 0, - "observed_application_sha256": null, - "observed_application_version_sha256": null, - "observed_environment_binding_sha256": null, - "observed_environment_digest": null, - "observed_session_sha256": null, - "outcome_envelope": { - "compensation_actions": 0, - "evidence_classes": [ - "identity", - "postcondition" - ], - "execution_completed": false, - "external_network_calls": "unknown", - "model_calls": 0, - "outcome": "HALTED", - "passed_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 9 - }, - "postcondition_evidence": [ - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", - "result_index": 0, - "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", - "step_index": 0, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", - "result_index": 2, - "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", - "step_index": 2, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "unverifiable", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "unverifiable", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - } - ], - "production_eligible": false, - "profile": "demo", - "required_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 11 - }, - "version": "openadapt.execution-outcome/v1", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", - "params": { - "note": "Golden triage booking three months" - }, - "production_eligible": false, - "program_exception_evidence": [], - "program_transition_evidence": [], - "qualification_environment_observer_contract_sha256": null, - "qualification_environment_observer_id": null, - "qualification_evidence_only": false, - "qualification_fault_mutations": [], - "readback": null, - "recorded_surface": null, - "render_scale": null, - "required_identity_step_ids": [], - "results": [ - { - "actuation": null, - "after_png": "steps/step_000_after.png", - "api_fallback": null, - "before_png": "steps/step_000_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Username Password Sign In", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 195 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_000", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_001_after.png", - "api_fallback": null, - "before_png": "steps/step_001_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'nurse.demo'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_001", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_002_after.png", - "api_fallback": null, - "before_png": "steps/step_002_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 264 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_002", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_003_after.png", - "api_fallback": null, - "before_png": "steps/step_003_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'mockmed-demo-pass'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_003", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_004_after.png", - "api_fallback": null, - "before_png": "steps/step_004_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Sign In'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 119, - 324 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_004", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_005_after.png", - "api_fallback": null, - "before_png": "steps/step_005_before.png", - "delivery_attempted": false, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Taylor DuplicateKnee pain referralHigh' (coverage 0.00) — refusing to act; run aborted", - "exception_handled": false, - "failure_category": "safety_halt", - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 0.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Taylor DuplicateKnee pain referralHigh", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "mismatch" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Open'", - "interstitial_actions": [], - "ok": false, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": null, - "program_scope": [], - "resolution": { - "confidence": 0.999, - "elapsed_ms": "", - "point": [ - 777, - 186 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": true, - "safety_refusal_evidence": { - "code": "identity_conflict", - "detector_input_sha256": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1", - "stage": "identity_verification" - }, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_005", - "submit_binding_verified": null, - "timings": "" - } - ], - "run_id_sha256": "", - "rung_counts": { - "template": 3 - }, - "screenshots_may_leave_box": false, - "source_recording_sha256": null, - "started_at": "", - "success": false, - "surface_override": false, - "terminal_outcome": null, - "total_ms": "", - "transaction_billable": false, - "transaction_outcome": "REJECTED_POLICY", - "transaction_platform_fault": false, - "visited_states": [], - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", - "workflow_name": "golden-triage" - }, - "trace": [ - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - }, - { - "args": [ - 210, - 195 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "nurse.demo" - ], - "call": "type_text" - }, - { - "args": [ - 210, - 264 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "mockmed-demo-pass" - ], - "call": "type_text" - }, - { - "args": [ - 119, - 324 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "call": "cancel_guarded_coordinate" - }, - { - "call": "cancel_guarded_keyboard" - }, - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - } - ] -} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json b/packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json deleted file mode 100644 index d986ee2b62..0000000000 --- a/packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json +++ /dev/null @@ -1,730 +0,0 @@ -{ - "app_state": { - "banner": null, - "enc_item": null, - "hash": "#tasks" - }, - "artifacts": { - "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", - "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_004_after.png": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10", - "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_005_after.png": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10", - "steps/step_005_before.png": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10" - }, - "environment": { - "platform": "linux", - "playwright": "1.64.1" - }, - "report": { - "approved_unverified_effect_step_ids": [], - "attended_program_transition_evidence": [], - "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "business_decision_evidence": [], - "canceled": false, - "change_ledger": [], - "effect_journal": [], - "est_model_cost_usd": 0.0, - "execution_completed": false, - "execution_entry_url": null, - "execution_origin": null, - "execution_outcome": "HALTED", - "execution_profile": "demo", - "execution_target_kind": null, - "external_network_calls": "unknown", - "governed_approval_source": null, - "governed_authorization_created_at": null, - "governed_authorization_id": null, - "governed_authorized_effect_contracts": {}, - "governed_minimum_effect_tier": null, - "governed_policy_contract_sha256": null, - "governed_policy_name": null, - "governed_qualification_campaign_id_sha256": null, - "governed_qualification_case_action_paths": {}, - "governed_qualification_case_id_sha256": null, - "governed_qualification_case_input_sha256": null, - "governed_qualification_case_kind": null, - "governed_qualification_fault_driver_contract_sha256": null, - "governed_qualification_fault_driver_id": null, - "governed_qualification_fault_driver_key_id": null, - "governed_qualification_fault_step_id_sha256": null, - "governed_qualification_project_contract_sha256": null, - "governed_qualification_project_id": null, - "governed_qualification_project_revision": null, - "governed_qualification_run_id_sha256": null, - "governed_qualified_effect_requirements": [], - "governed_runtime_inputs_digest": null, - "halt": { - "completed_intents": [ - "click recorded visual target", - "type 'nurse.demo'", - "click recorded visual target", - "type 'mockmed-demo-pass'", - "click 'Sign In'" - ], - "intent": "click 'Open'", - "observed_texts": [ - "MockMed", - "Clinical demo — all data is fake", - "Referral Tasks", - "Patient", - "Reason", - "Priority", - "Action", - "Alex Testcase", - "Cardiology follow-up", - "Medium", - "Open", - "Sam Specimen", - "Dermatology consult", - "Low" - ], - "outcome": "halt", - "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", - "state_id": "step_005" - }, - "heal_count": 0, - "idempotency_key": null, - "idempotent_replay": false, - "identity_applicable_steps": 8, - "identity_armed_steps": 6, - "identity_unarmed": [ - { - "intent": "click recorded visual target", - "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", - "step_id": "step_002" - }, - { - "intent": "click 'Sign In'", - "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", - "step_id": "step_004" - } - ], - "loop_iterations": [], - "model_calls": 0, - "observed_application_sha256": null, - "observed_application_version_sha256": null, - "observed_environment_binding_sha256": null, - "observed_environment_digest": null, - "observed_session_sha256": null, - "outcome_envelope": { - "compensation_actions": 0, - "evidence_classes": [ - "identity", - "postcondition" - ], - "execution_completed": false, - "external_network_calls": "unknown", - "model_calls": 0, - "outcome": "HALTED", - "passed_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 9 - }, - "postcondition_evidence": [ - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", - "result_index": 0, - "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", - "step_index": 0, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", - "result_index": 2, - "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", - "step_index": 2, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "unverifiable", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "unverifiable", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - } - ], - "production_eligible": false, - "profile": "demo", - "required_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 11 - }, - "version": "openadapt.execution-outcome/v1", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", - "params": { - "note": "Golden triage booking three months" - }, - "production_eligible": false, - "program_exception_evidence": [], - "program_transition_evidence": [], - "qualification_environment_observer_contract_sha256": null, - "qualification_environment_observer_id": null, - "qualification_evidence_only": false, - "qualification_fault_mutations": [], - "readback": null, - "recorded_surface": null, - "render_scale": null, - "required_identity_step_ids": [], - "results": [ - { - "actuation": null, - "after_png": "steps/step_000_after.png", - "api_fallback": null, - "before_png": "steps/step_000_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Username Password Sign In", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 195 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_000", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_001_after.png", - "api_fallback": null, - "before_png": "steps/step_001_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'nurse.demo'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_001", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_002_after.png", - "api_fallback": null, - "before_png": "steps/step_002_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 264 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_002", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_003_after.png", - "api_fallback": null, - "before_png": "steps/step_003_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'mockmed-demo-pass'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_003", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_004_after.png", - "api_fallback": null, - "before_png": "steps/step_004_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Sign In'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 119, - 324 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_004", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_005_after.png", - "api_fallback": null, - "before_png": "steps/step_005_before.png", - "delivery_attempted": false, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", - "exception_handled": false, - "failure_category": "safety_halt", - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 0.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Alex TestcaseCardiology follow-upMedium", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "mismatch" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Open'", - "interstitial_actions": [], - "ok": false, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": null, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 775, - 186 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": true, - "safety_refusal_evidence": { - "code": "identity_conflict", - "detector_input_sha256": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10", - "stage": "identity_verification" - }, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_005", - "submit_binding_verified": null, - "timings": "" - } - ], - "run_id_sha256": "", - "rung_counts": { - "template": 3 - }, - "screenshots_may_leave_box": false, - "source_recording_sha256": null, - "started_at": "", - "success": false, - "surface_override": false, - "terminal_outcome": null, - "total_ms": "", - "transaction_billable": false, - "transaction_outcome": "REJECTED_POLICY", - "transaction_platform_fault": false, - "visited_states": [], - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", - "workflow_name": "golden-triage" - }, - "trace": [ - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - }, - { - "args": [ - 210, - 195 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "nurse.demo" - ], - "call": "type_text" - }, - { - "args": [ - 210, - 264 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "mockmed-demo-pass" - ], - "call": "type_text" - }, - { - "args": [ - 119, - 324 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "call": "cancel_guarded_coordinate" - }, - { - "call": "cancel_guarded_keyboard" - }, - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - } - ] -} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_modal.json b/packages/flow/tests/golden_runs/baselines/mockmed_modal.json deleted file mode 100644 index 720413e043..0000000000 --- a/packages/flow/tests/golden_runs/baselines/mockmed_modal.json +++ /dev/null @@ -1,1261 +0,0 @@ -{ - "app_state": { - "banner": null, - "enc_item": null, - "hash": "#encounter" - }, - "artifacts": { - "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", - "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_004_after.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", - "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", - "steps/step_005_before.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", - "steps/step_006_after.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", - "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", - "steps/step_007_after.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", - "steps/step_007_before.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", - "steps/step_008_after.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", - "steps/step_008_before.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", - "steps/step_009_after.png": "5cab0fd7bacf22db87e424fb5d11478e8e0e436d831d7bf47aeebf827708032a", - "steps/step_009_before.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", - "steps/step_010_after.png": "e2b19443d9e3aab0ba865578116a73947ba8a973d0458cca144c4239ec88fc7f", - "steps/step_010_before.png": "493c9ad4fc4e8ffbdb8d0f8db10fda32ad5645fdaf3cee58a2149177371872ef" - }, - "environment": { - "platform": "linux", - "playwright": "1.64.1" - }, - "report": { - "approved_unverified_effect_step_ids": [], - "attended_program_transition_evidence": [], - "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "business_decision_evidence": [], - "canceled": false, - "change_ledger": [ - { - "attempt_state": "delivered", - "effects": [], - "intent": "click 'Save Encounter'", - "may_need_undo": true, - "position": 11, - "status": "unknown", - "step_id": "step_010", - "undo_id": null - } - ], - "effect_journal": [ - { - "approved_unverified": false, - "attempt_state": "delivered", - "collateral_reconciliation_actions": 0, - "consequential": true, - "effect_verified": null, - "intended_effect_contract_hashes": [], - "intent": "click 'Save Encounter'", - "observed_at": null, - "observed_effect": "unknown", - "step_id": "step_010", - "verification_performed": false - } - ], - "est_model_cost_usd": 0.0, - "execution_completed": false, - "execution_entry_url": null, - "execution_origin": null, - "execution_outcome": "HALTED", - "execution_profile": "demo", - "execution_target_kind": null, - "external_network_calls": "unknown", - "governed_approval_source": null, - "governed_authorization_created_at": null, - "governed_authorization_id": null, - "governed_authorized_effect_contracts": {}, - "governed_minimum_effect_tier": null, - "governed_policy_contract_sha256": null, - "governed_policy_name": null, - "governed_qualification_campaign_id_sha256": null, - "governed_qualification_case_action_paths": {}, - "governed_qualification_case_id_sha256": null, - "governed_qualification_case_input_sha256": null, - "governed_qualification_case_kind": null, - "governed_qualification_fault_driver_contract_sha256": null, - "governed_qualification_fault_driver_id": null, - "governed_qualification_fault_driver_key_id": null, - "governed_qualification_fault_step_id_sha256": null, - "governed_qualification_project_contract_sha256": null, - "governed_qualification_project_id": null, - "governed_qualification_project_revision": null, - "governed_qualification_run_id_sha256": null, - "governed_qualified_effect_requirements": [], - "governed_runtime_inputs_digest": null, - "halt": { - "completed_intents": [ - "click recorded visual target", - "type 'nurse.demo'", - "click recorded visual target", - "type 'mockmed-demo-pass'", - "click 'Sign In'", - "click 'Open'", - "click 'New Encounter'", - "click recorded visual target", - "click recorded visual target", - "type " - ], - "intent": "click 'Save Encounter'", - "observed_texts": [ - "MockMed", - "Clinical demo —- all data is fake", - "Jane Sample — MRN P1 — DOB 1980-01-01", - "New Encounter", - "Encounter Type", - "Triage", - "Consult", - "Note", - "Golden triage booking three months", - "Survey", - "Before saving, please rate your experience with", - "MockMed today.", - "Maybe later", - "Save Encounter" - ], - "outcome": "halt", - "reason": "Postconditions failed for step 'step_010' (click 'Save Encounter'): expected screen state not reached (semantic drift) — failed: region_stable region=(0, 229, 696, 56) — run aborted", - "state_id": "step_010" - }, - "heal_count": 0, - "idempotency_key": null, - "idempotent_replay": false, - "identity_applicable_steps": 8, - "identity_armed_steps": 6, - "identity_unarmed": [ - { - "intent": "click recorded visual target", - "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", - "step_id": "step_002" - }, - { - "intent": "click 'Sign In'", - "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", - "step_id": "step_004" - } - ], - "loop_iterations": [], - "model_calls": 0, - "observed_application_sha256": null, - "observed_application_version_sha256": null, - "observed_environment_binding_sha256": null, - "observed_environment_digest": null, - "observed_session_sha256": null, - "outcome_envelope": { - "compensation_actions": 0, - "evidence_classes": [ - "identity", - "postcondition" - ], - "execution_completed": false, - "external_network_calls": "unknown", - "model_calls": 0, - "outcome": "HALTED", - "passed_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 16 - }, - "postcondition_evidence": [ - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", - "result_index": 0, - "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", - "step_index": 0, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", - "result_index": 2, - "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", - "step_index": 2, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "f1bf5232224f4712713aaa98b0829338ade16ccb31cfeeb85478c20979cfbc13", - "result_index": 6, - "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", - "step_index": 6, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "5e431b3af5511f4247712a25b31f132a7941847776d868538f5fdf42c4fc0267", - "result_index": 6, - "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", - "step_index": 6, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "b729d202ac50c922dfc33ae952f4cbb0eae3a5673501a75eb7a9e859c44ec56f", - "result_index": 7, - "step_contract_sha256": "094990618971380c5d7ad0d802cb8b7fcb30ae4d216df6a2b0cd401883cb5b67", - "step_index": 7, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "ce73e998bb3089d35cdffe12030fc58a177f94cacfc0527db6913750c6260d64", - "result_index": 8, - "step_contract_sha256": "4e06e5799eee27ea75a2b2771b30c69302d9dc98cfa6fd86012f149fcde770d2", - "step_index": 8, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "b1b605cc937f012e7bc7734465f55fd8b99129646b2053f4ca79e6f47630f623", - "result_index": 9, - "step_contract_sha256": "0d8dee0302ab7bff3f02cf90ed448ce68b6bc63e766b71a259ce5ae7ee12af68", - "step_index": 9, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "f4bd81dab3bcda3ee22a9070c6b00ce7c7d449cc5438781e03037ccd67b824b2", - "result_index": 10, - "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", - "step_index": 10, - "verdict": "refuted", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "5020fabe218ee38bc028999f9916d61471fd3f51f783202177b1bf23b0e3f366", - "result_index": 10, - "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", - "step_index": 10, - "verdict": "refuted", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - } - ], - "production_eligible": false, - "profile": "demo", - "required_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 18 - }, - "version": "openadapt.execution-outcome/v1", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", - "params": { - "note": "Golden triage booking three months" - }, - "production_eligible": false, - "program_exception_evidence": [], - "program_transition_evidence": [], - "qualification_environment_observer_contract_sha256": null, - "qualification_environment_observer_id": null, - "qualification_evidence_only": false, - "qualification_fault_mutations": [], - "readback": null, - "recorded_surface": null, - "render_scale": null, - "required_identity_step_ids": [], - "results": [ - { - "actuation": null, - "after_png": "steps/step_000_after.png", - "api_fallback": null, - "before_png": "steps/step_000_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Username Password Sign In", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 195 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_000", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_001_after.png", - "api_fallback": null, - "before_png": "steps/step_001_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'nurse.demo'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_001", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_002_after.png", - "api_fallback": null, - "before_png": "steps/step_002_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 264 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_002", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_003_after.png", - "api_fallback": null, - "before_png": "steps/step_003_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'mockmed-demo-pass'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_003", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_004_after.png", - "api_fallback": null, - "before_png": "steps/step_004_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Sign In'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 119, - 324 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_004", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_005_after.png", - "api_fallback": null, - "before_png": "steps/step_005_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane SampleKnee pain referralHigh", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Open'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 775, - 186 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_005", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_006_after.png", - "api_fallback": null, - "before_png": "steps/step_006_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'New Encounter'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 114, - 159 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_006", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_007_after.png", - "api_fallback": null, - "before_png": "steps/step_007_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 85, - 214 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_007", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_008_after.png", - "api_fallback": null, - "before_png": "steps/step_008_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 344, - 350 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_008", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_009_after.png", - "api_fallback": null, - "before_png": "steps/step_009_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type ", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": null, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_009", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": "guarded_coordinate", - "after_png": "steps/step_010_after.png", - "api_fallback": null, - "before_png": "steps/step_010_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "guarded_coordinate_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": "Postconditions failed for step 'step_010' (click 'Save Encounter'): expected screen state not reached (semantic drift) — failed: region_stable region=(0, 229, 696, 56) — run aborted", - "exception_handled": false, - "failure_category": "safety_halt", - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Save Encounter'", - "interstitial_actions": [], - "ok": false, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": false, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 134, - 457 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "irreversible", - "risk_explanation": "retained action context names a consequential state change", - "risk_review_required": false, - "safety_halt": true, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_010", - "submit_binding_verified": null, - "timings": "" - } - ], - "run_id_sha256": "", - "rung_counts": { - "template": 7 - }, - "screenshots_may_leave_box": false, - "source_recording_sha256": null, - "started_at": "", - "success": false, - "surface_override": false, - "terminal_outcome": null, - "total_ms": "", - "transaction_billable": false, - "transaction_outcome": "RECONCILIATION_REQUIRED", - "transaction_platform_fault": false, - "visited_states": [], - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", - "workflow_name": "golden-triage" - }, - "trace": [ - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - }, - { - "args": [ - 210, - 195 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "nurse.demo" - ], - "call": "type_text" - }, - { - "args": [ - 210, - 264 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "mockmed-demo-pass" - ], - "call": "type_text" - }, - { - "args": [ - 119, - 324 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 775, - 186 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 114, - 159 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 85, - 214 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 344, - 350 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "Golden triage booking three months" - ], - "call": "type_text" - }, - { - "call": "cancel_pending_structural_guards" - }, - { - "args": [ - 134, - 457 - ], - "call": "arm_guarded_coordinate" - }, - { - "call": "cancel_guarded_coordinate" - }, - { - "args": [ - 134, - 457 - ], - "call": "act_guarded_coordinate", - "kwargs": { - "double": false, - "expected_frame_sha256": "493c9ad4fc4e8ffbdb8d0f8db10fda32ad5645fdaf3cee58a2149177371872ef" - } - }, - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - } - ] -} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_pass.json b/packages/flow/tests/golden_runs/baselines/mockmed_pass.json deleted file mode 100644 index c46682575f..0000000000 --- a/packages/flow/tests/golden_runs/baselines/mockmed_pass.json +++ /dev/null @@ -1,1228 +0,0 @@ -{ - "app_state": { - "banner": "Encounter saved — Golden triage booking three months", - "enc_item": "Triage — Golden triage booking three months", - "hash": "#patient/p1" - }, - "artifacts": { - "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", - "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_004_after.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", - "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", - "steps/step_005_before.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", - "steps/step_006_after.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", - "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", - "steps/step_007_after.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", - "steps/step_007_before.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", - "steps/step_008_after.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", - "steps/step_008_before.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", - "steps/step_009_after.png": "5cab0fd7bacf22db87e424fb5d11478e8e0e436d831d7bf47aeebf827708032a", - "steps/step_009_before.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", - "steps/step_010_after.png": "b67a417320935e61795d3fc117b99c301045cfb1cc9cfb1f51515d4ecc36e5b9", - "steps/step_010_before.png": "493c9ad4fc4e8ffbdb8d0f8db10fda32ad5645fdaf3cee58a2149177371872ef" - }, - "environment": { - "platform": "linux", - "playwright": "1.64.1" - }, - "report": { - "approved_unverified_effect_step_ids": [], - "attended_program_transition_evidence": [], - "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "business_decision_evidence": [], - "canceled": false, - "change_ledger": [ - { - "attempt_state": "delivered", - "effects": [], - "intent": "click 'Save Encounter'", - "may_need_undo": true, - "position": 11, - "status": "unknown", - "step_id": "step_010", - "undo_id": null - } - ], - "effect_journal": [ - { - "approved_unverified": false, - "attempt_state": "delivered", - "collateral_reconciliation_actions": 0, - "consequential": true, - "effect_verified": null, - "intended_effect_contract_hashes": [], - "intent": "click 'Save Encounter'", - "observed_at": null, - "observed_effect": "unknown", - "step_id": "step_010", - "verification_performed": false - } - ], - "est_model_cost_usd": 0.0, - "execution_completed": true, - "execution_entry_url": null, - "execution_origin": null, - "execution_outcome": "COMPLETED_UNVERIFIED", - "execution_profile": "demo", - "execution_target_kind": null, - "external_network_calls": "unknown", - "governed_approval_source": null, - "governed_authorization_created_at": null, - "governed_authorization_id": null, - "governed_authorized_effect_contracts": {}, - "governed_minimum_effect_tier": null, - "governed_policy_contract_sha256": null, - "governed_policy_name": null, - "governed_qualification_campaign_id_sha256": null, - "governed_qualification_case_action_paths": {}, - "governed_qualification_case_id_sha256": null, - "governed_qualification_case_input_sha256": null, - "governed_qualification_case_kind": null, - "governed_qualification_fault_driver_contract_sha256": null, - "governed_qualification_fault_driver_id": null, - "governed_qualification_fault_driver_key_id": null, - "governed_qualification_fault_step_id_sha256": null, - "governed_qualification_project_contract_sha256": null, - "governed_qualification_project_id": null, - "governed_qualification_project_revision": null, - "governed_qualification_run_id_sha256": null, - "governed_qualified_effect_requirements": [], - "governed_runtime_inputs_digest": null, - "halt": null, - "heal_count": 0, - "idempotency_key": null, - "idempotent_replay": false, - "identity_applicable_steps": 8, - "identity_armed_steps": 6, - "identity_unarmed": [ - { - "intent": "click recorded visual target", - "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", - "step_id": "step_002" - }, - { - "intent": "click 'Sign In'", - "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", - "step_id": "step_004" - } - ], - "loop_iterations": [], - "model_calls": 0, - "observed_application_sha256": null, - "observed_application_version_sha256": null, - "observed_environment_binding_sha256": null, - "observed_environment_digest": null, - "observed_session_sha256": null, - "outcome_envelope": { - "compensation_actions": 0, - "evidence_classes": [ - "identity", - "postcondition" - ], - "execution_completed": true, - "external_network_calls": "unknown", - "model_calls": 0, - "outcome": "COMPLETED_UNVERIFIED", - "passed_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 18 - }, - "postcondition_evidence": [ - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", - "result_index": 0, - "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", - "step_index": 0, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", - "result_index": 2, - "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", - "step_index": 2, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "f1bf5232224f4712713aaa98b0829338ade16ccb31cfeeb85478c20979cfbc13", - "result_index": 6, - "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", - "step_index": 6, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "5e431b3af5511f4247712a25b31f132a7941847776d868538f5fdf42c4fc0267", - "result_index": 6, - "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", - "step_index": 6, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "b729d202ac50c922dfc33ae952f4cbb0eae3a5673501a75eb7a9e859c44ec56f", - "result_index": 7, - "step_contract_sha256": "094990618971380c5d7ad0d802cb8b7fcb30ae4d216df6a2b0cd401883cb5b67", - "step_index": 7, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "ce73e998bb3089d35cdffe12030fc58a177f94cacfc0527db6913750c6260d64", - "result_index": 8, - "step_contract_sha256": "4e06e5799eee27ea75a2b2771b30c69302d9dc98cfa6fd86012f149fcde770d2", - "step_index": 8, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "b1b605cc937f012e7bc7734465f55fd8b99129646b2053f4ca79e6f47630f623", - "result_index": 9, - "step_contract_sha256": "0d8dee0302ab7bff3f02cf90ed448ce68b6bc63e766b71a259ce5ae7ee12af68", - "step_index": 9, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "f4bd81dab3bcda3ee22a9070c6b00ce7c7d449cc5438781e03037ccd67b824b2", - "result_index": 10, - "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", - "step_index": 10, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "5020fabe218ee38bc028999f9916d61471fd3f51f783202177b1bf23b0e3f366", - "result_index": 10, - "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", - "step_index": 10, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - } - ], - "production_eligible": false, - "profile": "demo", - "required_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 18 - }, - "version": "openadapt.execution-outcome/v1", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", - "params": { - "note": "Golden triage booking three months" - }, - "production_eligible": false, - "program_exception_evidence": [], - "program_transition_evidence": [], - "qualification_environment_observer_contract_sha256": null, - "qualification_environment_observer_id": null, - "qualification_evidence_only": false, - "qualification_fault_mutations": [], - "readback": null, - "recorded_surface": null, - "render_scale": null, - "required_identity_step_ids": [], - "results": [ - { - "actuation": null, - "after_png": "steps/step_000_after.png", - "api_fallback": null, - "before_png": "steps/step_000_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Username Password Sign In", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 195 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_000", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_001_after.png", - "api_fallback": null, - "before_png": "steps/step_001_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'nurse.demo'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_001", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_002_after.png", - "api_fallback": null, - "before_png": "steps/step_002_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 264 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_002", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_003_after.png", - "api_fallback": null, - "before_png": "steps/step_003_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'mockmed-demo-pass'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_003", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_004_after.png", - "api_fallback": null, - "before_png": "steps/step_004_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Sign In'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 119, - 324 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_004", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_005_after.png", - "api_fallback": null, - "before_png": "steps/step_005_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane SampleKnee pain referralHigh", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Open'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 775, - 186 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_005", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_006_after.png", - "api_fallback": null, - "before_png": "steps/step_006_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'New Encounter'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 114, - 159 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_006", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_007_after.png", - "api_fallback": null, - "before_png": "steps/step_007_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 85, - 214 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_007", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_008_after.png", - "api_fallback": null, - "before_png": "steps/step_008_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 344, - 350 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_008", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_009_after.png", - "api_fallback": null, - "before_png": "steps/step_009_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type ", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": null, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_009", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": "guarded_coordinate", - "after_png": "steps/step_010_after.png", - "api_fallback": null, - "before_png": "steps/step_010_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "guarded_coordinate_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Save Encounter'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 134, - 457 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "irreversible", - "risk_explanation": "retained action context names a consequential state change", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_010", - "submit_binding_verified": null, - "timings": "" - } - ], - "run_id_sha256": "", - "rung_counts": { - "template": 8 - }, - "screenshots_may_leave_box": false, - "source_recording_sha256": null, - "started_at": "", - "success": true, - "surface_override": false, - "terminal_outcome": null, - "total_ms": "", - "transaction_billable": false, - "transaction_outcome": "COMPLETED_UNVERIFIED", - "transaction_platform_fault": false, - "visited_states": [], - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", - "workflow_name": "golden-triage" - }, - "trace": [ - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - }, - { - "args": [ - 210, - 195 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "nurse.demo" - ], - "call": "type_text" - }, - { - "args": [ - 210, - 264 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "mockmed-demo-pass" - ], - "call": "type_text" - }, - { - "args": [ - 119, - 324 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 775, - 186 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 114, - 159 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 85, - 214 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 344, - 350 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "Golden triage booking three months" - ], - "call": "type_text" - }, - { - "call": "cancel_pending_structural_guards" - }, - { - "args": [ - 134, - 457 - ], - "call": "arm_guarded_coordinate" - }, - { - "call": "cancel_guarded_coordinate" - }, - { - "args": [ - 134, - 457 - ], - "call": "act_guarded_coordinate", - "kwargs": { - "double": false, - "expected_frame_sha256": "493c9ad4fc4e8ffbdb8d0f8db10fda32ad5645fdaf3cee58a2149177371872ef" - } - }, - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - } - ] -} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json b/packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json deleted file mode 100644 index d3068c014d..0000000000 --- a/packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json +++ /dev/null @@ -1,1649 +0,0 @@ -{ - "app_state": { - "banner": "Encounter saved — Golden triage booking three months", - "enc_item": "Triage — Golden triage booking three months", - "hash": "#patient/p1" - }, - "artifacts": { - "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", - "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_004_after.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", - "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", - "steps/step_005_before.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", - "steps/step_006_after.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", - "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", - "steps/step_007_after.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", - "steps/step_007_before.png": "9f111dfcf3956a3646132a20b2d61cc8bc4a34de2a75c36ae9c570b94afd406c", - "steps/step_008_after.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", - "steps/step_008_before.png": "fdb39ebb842417e7cdbc13f025ee0cac5bc19316391f2147962774db642ea573", - "steps/step_009_after.png": "5cab0fd7bacf22db87e424fb5d11478e8e0e436d831d7bf47aeebf827708032a", - "steps/step_009_before.png": "bb50aae30b8867916889a006993b1b77b263bd1f6105d293bda773d3f7dbb3fd", - "steps/step_010_after.png": "b67a417320935e61795d3fc117b99c301045cfb1cc9cfb1f51515d4ecc36e5b9", - "steps/step_010_before.png": "493c9ad4fc4e8ffbdb8d0f8db10fda32ad5645fdaf3cee58a2149177371872ef" - }, - "environment": { - "platform": "linux", - "playwright": "1.64.1" - }, - "report": { - "approved_unverified_effect_step_ids": [], - "attended_program_transition_evidence": [], - "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "business_decision_evidence": [], - "canceled": false, - "change_ledger": [ - { - "attempt_state": "delivered", - "effects": [], - "intent": "click 'Save Encounter'", - "may_need_undo": true, - "position": 11, - "status": "unknown", - "step_id": "step_010", - "undo_id": null - } - ], - "effect_journal": [ - { - "approved_unverified": false, - "attempt_state": "delivered", - "collateral_reconciliation_actions": 0, - "consequential": true, - "effect_verified": null, - "intended_effect_contract_hashes": [], - "intent": "click 'Save Encounter'", - "observed_at": null, - "observed_effect": "unknown", - "step_id": "step_010", - "verification_performed": false - } - ], - "est_model_cost_usd": 0.0, - "execution_completed": true, - "execution_entry_url": null, - "execution_origin": null, - "execution_outcome": "COMPLETED_UNVERIFIED", - "execution_profile": "demo", - "execution_target_kind": null, - "external_network_calls": "unknown", - "governed_approval_source": null, - "governed_authorization_created_at": null, - "governed_authorization_id": null, - "governed_authorized_effect_contracts": {}, - "governed_minimum_effect_tier": null, - "governed_policy_contract_sha256": null, - "governed_policy_name": null, - "governed_qualification_campaign_id_sha256": null, - "governed_qualification_case_action_paths": {}, - "governed_qualification_case_id_sha256": null, - "governed_qualification_case_input_sha256": null, - "governed_qualification_case_kind": null, - "governed_qualification_fault_driver_contract_sha256": null, - "governed_qualification_fault_driver_id": null, - "governed_qualification_fault_driver_key_id": null, - "governed_qualification_fault_step_id_sha256": null, - "governed_qualification_project_contract_sha256": null, - "governed_qualification_project_id": null, - "governed_qualification_project_revision": null, - "governed_qualification_run_id_sha256": null, - "governed_qualified_effect_requirements": [], - "governed_runtime_inputs_digest": null, - "halt": null, - "heal_count": 0, - "idempotency_key": null, - "idempotent_replay": false, - "identity_applicable_steps": 8, - "identity_armed_steps": 6, - "identity_unarmed": [ - { - "intent": "click recorded visual target", - "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", - "step_id": "step_002" - }, - { - "intent": "click 'Sign In'", - "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", - "step_id": "step_004" - } - ], - "loop_iterations": [], - "model_calls": 0, - "observed_application_sha256": null, - "observed_application_version_sha256": null, - "observed_environment_binding_sha256": null, - "observed_environment_digest": null, - "observed_session_sha256": null, - "outcome_envelope": { - "compensation_actions": 0, - "evidence_classes": [ - "identity", - "postcondition" - ], - "execution_completed": true, - "external_network_calls": "unknown", - "model_calls": 0, - "outcome": "COMPLETED_UNVERIFIED", - "passed_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 18 - }, - "postcondition_evidence": [ - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", - "result_index": 0, - "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", - "step_index": 0, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", - "result_index": 2, - "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", - "step_index": 2, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "f1bf5232224f4712713aaa98b0829338ade16ccb31cfeeb85478c20979cfbc13", - "result_index": 6, - "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", - "step_index": 6, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "5e431b3af5511f4247712a25b31f132a7941847776d868538f5fdf42c4fc0267", - "result_index": 6, - "step_contract_sha256": "2fbdf7578afac1e16ef4a2dcf328448e5d119eceb775d764e4ee2600c76391f5", - "step_index": 6, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "b729d202ac50c922dfc33ae952f4cbb0eae3a5673501a75eb7a9e859c44ec56f", - "result_index": 7, - "step_contract_sha256": "094990618971380c5d7ad0d802cb8b7fcb30ae4d216df6a2b0cd401883cb5b67", - "step_index": 7, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "ce73e998bb3089d35cdffe12030fc58a177f94cacfc0527db6913750c6260d64", - "result_index": 8, - "step_contract_sha256": "4e06e5799eee27ea75a2b2771b30c69302d9dc98cfa6fd86012f149fcde770d2", - "step_index": 8, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "b1b605cc937f012e7bc7734465f55fd8b99129646b2053f4ca79e6f47630f623", - "result_index": 9, - "step_contract_sha256": "0d8dee0302ab7bff3f02cf90ed448ce68b6bc63e766b71a259ce5ae7ee12af68", - "step_index": 9, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "f4bd81dab3bcda3ee22a9070c6b00ce7c7d449cc5438781e03037ccd67b824b2", - "result_index": 10, - "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", - "step_index": 10, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "5020fabe218ee38bc028999f9916d61471fd3f51f783202177b1bf23b0e3f366", - "result_index": 10, - "step_contract_sha256": "a6a09d357efcba1c9d1f74eafc5ff1ca91c6315357c5c89df6ba6e9c3512f87c", - "step_index": 10, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - } - ], - "production_eligible": false, - "profile": "demo", - "required_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 18 - }, - "version": "openadapt.execution-outcome/v1", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", - "params": { - "note": "Golden triage booking three months" - }, - "production_eligible": false, - "program_exception_evidence": [], - "program_transition_evidence": [], - "qualification_environment_observer_contract_sha256": null, - "qualification_environment_observer_id": null, - "qualification_evidence_only": false, - "qualification_fault_mutations": [], - "readback": null, - "recorded_surface": null, - "render_scale": null, - "required_identity_step_ids": [], - "results": [ - { - "actuation": "dom", - "after_png": "steps/step_000_after.png", - "api_fallback": null, - "before_png": "steps/step_000_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "dom_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Username Password Sign In", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 214, - 195 - ], - "rung": "structural", - "structural_handle": { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 214, - 195 - ], - "region": [ - 49, - 177, - 330, - 36 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "" - } - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_000", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_001_after.png", - "api_fallback": null, - "before_png": "steps/step_001_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'nurse.demo'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_001", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": "dom", - "after_png": "steps/step_002_after.png", - "api_fallback": null, - "before_png": "steps/step_002_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "dom_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 214, - 264 - ], - "rung": "structural", - "structural_handle": { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 214, - 264 - ], - "region": [ - 49, - 246, - 330, - 36 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "" - } - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_002", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_003_after.png", - "api_fallback": null, - "before_png": "steps/step_003_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'mockmed-demo-pass'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_003", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": "dom", - "after_png": "steps/step_004_after.png", - "api_fallback": null, - "before_png": "steps/step_004_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "dom_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Sign In'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 119, - 324 - ], - "rung": "structural", - "structural_handle": { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 119, - 324 - ], - "region": [ - 49, - 304, - 140, - 40 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "" - } - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_004", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": "dom", - "after_png": "steps/step_005_after.png", - "api_fallback": null, - "before_png": "steps/step_005_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "dom_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane SampleKnee pain referralHigh", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Open'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 776, - 186 - ], - "rung": "structural", - "structural_handle": { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 776, - 186 - ], - "region": [ - 731, - 168, - 90, - 36 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "" - } - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_005", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": "dom", - "after_png": "steps/step_006_after.png", - "api_fallback": null, - "before_png": "steps/step_006_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "dom_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'New Encounter'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 114, - 159 - ], - "rung": "structural", - "structural_handle": { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 114, - 159 - ], - "region": [ - 24, - 139, - 180, - 40 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "" - } - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_006", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": "dom", - "after_png": "steps/step_007_after.png", - "api_fallback": null, - "before_png": "steps/step_007_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "dom_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 85, - 214 - ], - "rung": "structural", - "structural_handle": { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 85, - 214 - ], - "region": [ - 25, - 195, - 120, - 38 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "" - } - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_007", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": "dom", - "after_png": "steps/step_008_after.png", - "api_fallback": null, - "before_png": "steps/step_008_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "dom_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 344, - 350 - ], - "rung": "structural", - "structural_handle": { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 344, - 350 - ], - "region": [ - 24, - 281, - 640, - 138 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "" - } - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_008", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_009_after.png", - "api_fallback": null, - "before_png": "steps/step_009_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type ", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": null, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_009", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": "dom", - "after_png": "steps/step_010_after.png", - "api_fallback": null, - "before_png": "steps/step_010_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "dom_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Save Encounter'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 134, - 457 - ], - "rung": "structural", - "structural_handle": { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 134, - 457 - ], - "region": [ - 24, - 437, - 220, - 40 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "" - } - }, - "risk": "irreversible", - "risk_explanation": "retained action context names a consequential state change", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_010", - "submit_binding_verified": null, - "timings": "" - } - ], - "run_id_sha256": "", - "rung_counts": { - "structural": 8 - }, - "screenshots_may_leave_box": false, - "source_recording_sha256": null, - "started_at": "", - "success": true, - "surface_override": false, - "terminal_outcome": null, - "total_ms": "", - "transaction_billable": false, - "transaction_outcome": "COMPLETED_UNVERIFIED", - "transaction_platform_fault": false, - "visited_states": [], - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", - "workflow_name": "golden-triage" - }, - "trace": [ - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - }, - { - "args": [ - { - "automation_id": null, - "frame_path": null, - "name": "Username", - "role": "textbox", - "selector": "#username", - "type": "StructuralLocator", - "window_name": null - }, - { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 214, - 195 - ], - "region": [ - 49, - 177, - 330, - 36 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "", - "type": "StructuralHandle" - } - ], - "call": "act_structural", - "kwargs": { - "double": false - } - }, - { - "args": [ - "nurse.demo" - ], - "call": "type_text" - }, - { - "args": [ - { - "automation_id": null, - "frame_path": null, - "name": "Password", - "role": "textbox", - "selector": "#password", - "type": "StructuralLocator", - "window_name": null - }, - { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 214, - 264 - ], - "region": [ - 49, - 246, - 330, - 36 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "", - "type": "StructuralHandle" - } - ], - "call": "act_structural", - "kwargs": { - "double": false - } - }, - { - "args": [ - "mockmed-demo-pass" - ], - "call": "type_text" - }, - { - "args": [ - { - "automation_id": null, - "frame_path": null, - "name": "Sign In", - "role": "button", - "selector": "#signin", - "type": "StructuralLocator", - "window_name": null - }, - { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 119, - 324 - ], - "region": [ - 49, - 304, - 140, - 40 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "", - "type": "StructuralHandle" - } - ], - "call": "act_structural", - "kwargs": { - "double": false - } - }, - { - "args": [ - { - "automation_id": null, - "frame_path": null, - "name": "Open", - "role": "button", - "selector": "#open-p1", - "type": "StructuralLocator", - "window_name": null - }, - { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 776, - 186 - ], - "region": [ - 731, - 168, - 90, - 36 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "", - "type": "StructuralHandle" - } - ], - "call": "act_structural", - "kwargs": { - "double": false - } - }, - { - "args": [ - { - "automation_id": null, - "frame_path": null, - "name": "New Encounter", - "role": "button", - "selector": "#new-encounter", - "type": "StructuralLocator", - "window_name": null - }, - { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 114, - 159 - ], - "region": [ - 24, - 139, - 180, - 40 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "", - "type": "StructuralHandle" - } - ], - "call": "act_structural", - "kwargs": { - "double": false - } - }, - { - "args": [ - { - "automation_id": null, - "frame_path": null, - "name": "Triage", - "role": "button", - "selector": "#type-triage", - "type": "StructuralLocator", - "window_name": null - }, - { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 85, - 214 - ], - "region": [ - 25, - 195, - 120, - 38 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "", - "type": "StructuralHandle" - } - ], - "call": "act_structural", - "kwargs": { - "double": false - } - }, - { - "args": [ - { - "automation_id": null, - "frame_path": null, - "name": "Note", - "role": "textbox", - "selector": "#note", - "type": "StructuralLocator", - "window_name": null - }, - { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 344, - 350 - ], - "region": [ - 24, - 281, - 640, - 138 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "", - "type": "StructuralHandle" - } - ], - "call": "act_structural", - "kwargs": { - "double": false - } - }, - { - "args": [ - "Golden triage booking three months" - ], - "call": "type_text" - }, - { - "call": "cancel_pending_structural_guards" - }, - { - "args": [ - { - "automation_id": null, - "frame_path": null, - "name": "Save Encounter", - "role": "button", - "selector": "#save-encounter", - "type": "StructuralLocator", - "window_name": null - }, - { - "candidate_count": 1, - "confidence": 1.0, - "point": [ - 134, - 457 - ], - "region": [ - 24, - 437, - 220, - 40 - ], - "supported_operations": [ - "dom_click", - "dom_double_click", - "dom_drag" - ], - "target_fingerprint": "", - "type": "StructuralHandle" - } - ], - "call": "act_structural", - "kwargs": { - "double": false - } - }, - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - } - ] -} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_rename.json b/packages/flow/tests/golden_runs/baselines/mockmed_rename.json deleted file mode 100644 index cdd5ca21d8..0000000000 --- a/packages/flow/tests/golden_runs/baselines/mockmed_rename.json +++ /dev/null @@ -1,1740 +0,0 @@ -{ - "app_state": { - "banner": null, - "enc_item": null, - "hash": "#encounter" - }, - "artifacts": { - "heals/step_005/heal.json": "b3c63d6961d5f6f1391833932995154a4267cae3f76448c1f577d662416d73a8", - "heals/step_005/patch.json": "7c8471d5cc3bd48e0e5cf5fc4d8cf65e1c9576d6ffe78a9448484edda699fc44", - "heals/step_005/screen.png": "d75e763a05baa64e18034d9ea887a98a66e4a16164be5367e2252e4033d88731", - "heals/step_005/template.png": "eca2fd5d3137dacda8ef89755450480df3a5ad42d93b83664ef6cf7de83c622c", - "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", - "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_004_after.png": "d75e763a05baa64e18034d9ea887a98a66e4a16164be5367e2252e4033d88731", - "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", - "steps/step_005_before.png": "d75e763a05baa64e18034d9ea887a98a66e4a16164be5367e2252e4033d88731", - "steps/step_006_after.png": "c4f30586984dccdfe5307a1724c7d15d7b355dff0e59150eb15b2831658acbeb", - "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", - "steps/step_007_after.png": "b2d57f99123791a250bcbfadf0149df94793c5dd82bf7a1809f3a1a2e33e17ef", - "steps/step_007_before.png": "c4f30586984dccdfe5307a1724c7d15d7b355dff0e59150eb15b2831658acbeb", - "steps/step_008_after.png": "3528f600cfa8e08340f46b34cf90bc616162a9bec96fafeb8c1ad4c4423d7aaf", - "steps/step_008_before.png": "b2d57f99123791a250bcbfadf0149df94793c5dd82bf7a1809f3a1a2e33e17ef", - "steps/step_009_after.png": "5645293291ecfbc0fad3d7754255c23f64dc82be464e51d041e8811ef7d506cb", - "steps/step_009_before.png": "3528f600cfa8e08340f46b34cf90bc616162a9bec96fafeb8c1ad4c4423d7aaf", - "steps/step_010_after.png": "5645293291ecfbc0fad3d7754255c23f64dc82be464e51d041e8811ef7d506cb", - "steps/step_010_before.png": "5645293291ecfbc0fad3d7754255c23f64dc82be464e51d041e8811ef7d506cb" - }, - "environment": { - "platform": "linux", - "playwright": "1.64.1" - }, - "report": { - "approved_unverified_effect_step_ids": [], - "attended_program_transition_evidence": [], - "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "business_decision_evidence": [], - "canceled": false, - "change_ledger": [], - "effect_journal": [ - { - "approved_unverified": false, - "attempt_state": "not_actuated", - "collateral_reconciliation_actions": 0, - "consequential": true, - "effect_verified": null, - "intended_effect_contract_hashes": [], - "intent": "click 'Save Encounter'", - "observed_at": null, - "observed_effect": "unknown", - "step_id": "step_010", - "verification_performed": false - } - ], - "est_model_cost_usd": 0.0, - "execution_completed": false, - "execution_entry_url": null, - "execution_origin": null, - "execution_outcome": "HALTED", - "execution_profile": "demo", - "execution_target_kind": null, - "external_network_calls": "unknown", - "governed_approval_source": null, - "governed_authorization_created_at": null, - "governed_authorization_id": null, - "governed_authorized_effect_contracts": {}, - "governed_minimum_effect_tier": null, - "governed_policy_contract_sha256": null, - "governed_policy_name": null, - "governed_qualification_campaign_id_sha256": null, - "governed_qualification_case_action_paths": {}, - "governed_qualification_case_id_sha256": null, - "governed_qualification_case_input_sha256": null, - "governed_qualification_case_kind": null, - "governed_qualification_fault_driver_contract_sha256": null, - "governed_qualification_fault_driver_id": null, - "governed_qualification_fault_driver_key_id": null, - "governed_qualification_fault_step_id_sha256": null, - "governed_qualification_project_contract_sha256": null, - "governed_qualification_project_id": null, - "governed_qualification_project_revision": null, - "governed_qualification_run_id_sha256": null, - "governed_qualified_effect_requirements": [], - "governed_runtime_inputs_digest": null, - "halt": { - "completed_intents": [ - "click recorded visual target", - "type 'nurse.demo'", - "click recorded visual target", - "type 'mockmed-demo-pass'", - "click 'Sign In'", - "click 'Open'", - "click 'New Encounter'", - "click recorded visual target", - "click recorded visual target", - "type " - ], - "intent": "click 'Save Encounter'", - "observed_texts": [ - "MockMed", - "Clinical demo - all data is fake", - "Jane Sample — MRN P1 — DOB 1980-01-01", - "New Encounter", - "Encounter Type", - "Triage", - "Consult", - "Note", - "Golden triage booking three months", - "Submit Encounter" - ], - "outcome": "halt", - "reason": "Step 'step_010' (click 'Save Encounter') is irreversible but only resolved via the 'geometry' rung — needs human confirmation; refusing to act (v0 policy)", - "state_id": "step_010" - }, - "heal_count": 1, - "idempotency_key": null, - "idempotent_replay": false, - "identity_applicable_steps": 8, - "identity_armed_steps": 6, - "identity_unarmed": [ - { - "intent": "click recorded visual target", - "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", - "step_id": "step_002" - }, - { - "intent": "click 'Sign In'", - "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", - "step_id": "step_004" - } - ], - "loop_iterations": [], - "model_calls": 0, - "observed_application_sha256": null, - "observed_application_version_sha256": null, - "observed_environment_binding_sha256": null, - "observed_environment_digest": null, - "observed_session_sha256": null, - "outcome_envelope": { - "compensation_actions": 0, - "evidence_classes": [ - "identity", - "postcondition" - ], - "execution_completed": false, - "external_network_calls": "unknown", - "model_calls": 0, - "outcome": "HALTED", - "passed_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 16 - }, - "postcondition_evidence": [ - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "24410a8ac1df39730293e93d498a118ef4336ce7730ec488c97fce730f0b06ff", - "result_index": 0, - "step_contract_sha256": "2ef15ddddf4fd43468beb50a3330e679c54cce1a320d372aeb18de74216216a5", - "step_index": 0, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "ad882f4181fd235011c9380ad0fc728a8fa8ba83e2b369466ebc2ac32bd487f4", - "result_index": 1, - "step_contract_sha256": "fed380c79958900c2ab37ed6ce38a0822294e028e4ef153f0d9820b0f590e8f7", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "68e980eb21229baef57bf7103c4d7c6a20f778a352c805c92e5ce194a967c114", - "result_index": 1, - "step_contract_sha256": "fed380c79958900c2ab37ed6ce38a0822294e028e4ef153f0d9820b0f590e8f7", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "0d468ae59c32c2c452a45a5b0f3f5c6443eaf384d3b6d0e49566635c68a4db71", - "result_index": 1, - "step_contract_sha256": "fed380c79958900c2ab37ed6ce38a0822294e028e4ef153f0d9820b0f590e8f7", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "af3e2bc1028427a348cfc3cc1f4dd09844856d40f4707b14b57d6fd9f725095c", - "result_index": 2, - "step_contract_sha256": "c3ce6eefb4b69abc7c0a76a9b7ffee451cebbe1ced97a36439bd04d4fda220b8", - "step_index": 2, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "41ce9a49b0db2dbcab20b42e3c36050b700a34dcbbf0fb4022a0c0ce3abb52e9", - "result_index": 3, - "step_contract_sha256": "db795513490cc2930b47dae0cda0dff9bb0364bca611e299f687a814b4353b61", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "ead825bf37613d9051147204771058a1cdeefcb4af5d2995ab652f1e4163e9c5", - "result_index": 3, - "step_contract_sha256": "db795513490cc2930b47dae0cda0dff9bb0364bca611e299f687a814b4353b61", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "095670e275e3c41f26642e4bbe132c9bc0be722d2c50f220aaba66ee28ccc2fb", - "result_index": 4, - "step_contract_sha256": "63524cca8c36a11a5931c4f8eee383b4bbef64064f781cf53326e5960ea163e5", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "0dc1f643133c81b3210b56a63341dffd92e887877796bcf8e5d1c49e0abe3dd4", - "result_index": 4, - "step_contract_sha256": "63524cca8c36a11a5931c4f8eee383b4bbef64064f781cf53326e5960ea163e5", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "24d7d6c9d4138777100759818bae19440180da50c5cb0fa2037bd3c8912d67f3", - "result_index": 5, - "step_contract_sha256": "2b2e49f0bcc7ebb05c9638f6255b55a28916eae87b35e88b96783e04c5ee79e5", - "step_index": 5, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "326a9ee440e6c3672b25b2a48cdff0c29b1cbd23db4a0a2f94758acf9c6453ce", - "result_index": 5, - "step_contract_sha256": "2b2e49f0bcc7ebb05c9638f6255b55a28916eae87b35e88b96783e04c5ee79e5", - "step_index": 5, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "ab3cda6afb0d174b2dedffcaf38277dc056144df0a9415f52932ae756aaa406f", - "result_index": 6, - "step_contract_sha256": "5809345d60ae4ec36eb618d1b2fbe2d3cb03cb23ae8413776a7d75482ff8a145", - "step_index": 6, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "85f1d0e74b8608af26017a49992e9a8db7274ae65a65adfb4f66b5f3c88372aa", - "result_index": 6, - "step_contract_sha256": "5809345d60ae4ec36eb618d1b2fbe2d3cb03cb23ae8413776a7d75482ff8a145", - "step_index": 6, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "5729506f7013de76cb84570f82cc1eb92b2bea3512f9156662c0b7d0a3d5648b", - "result_index": 7, - "step_contract_sha256": "3aeb7d6bbab744782cb030b8d07b0a008fbf378606771d4efc2193227ceebd00", - "step_index": 7, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "79dc17bb4fdb8e981b0a640c81720f3b54d01ce15b3043dbaf61d8a416ed5f05", - "result_index": 8, - "step_contract_sha256": "75a3e9a9a40eb435e00e28885abbe61432175947d8b48cdced568c86145ef968", - "step_index": 8, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "9cdfaa65685b485ba97d97b2382d58dc786594a878be6e999dda05a0c89f6b7e", - "result_index": 9, - "step_contract_sha256": "82e95d0cee8f746cc6ac6ed3a5272b481294fdc9fa0b3a0cbf807b016382e5db", - "step_index": 9, - "verdict": "passed", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "b0cbb0ce8386ef0a0a9d84314218976303648a01a9adeb816ed9d933cfd4c9d3", - "result_index": 10, - "step_contract_sha256": "a9c9b5e5643bf268d0b5d41c96f86ee7cd419716a4bd7b80fa6eda6d629636d6", - "step_index": 10, - "verdict": "unverifiable", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "1581875b5d7c48dbb913ce805a66c2673181366b37bfa5f2963d55762ed5180a", - "result_index": 10, - "step_contract_sha256": "a9c9b5e5643bf268d0b5d41c96f86ee7cd419716a4bd7b80fa6eda6d629636d6", - "step_index": 10, - "verdict": "unverifiable", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - } - ], - "production_eligible": false, - "profile": "demo", - "required_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 18 - }, - "version": "openadapt.execution-outcome/v1", - "workflow_contract_sha256": "87dde8d75b81b576a13ed984be38805f248484ad862276f8a10198da03662253" - }, - "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", - "params": { - "note": "Golden triage booking three months" - }, - "production_eligible": false, - "program_exception_evidence": [], - "program_transition_evidence": [], - "qualification_environment_observer_contract_sha256": null, - "qualification_environment_observer_id": null, - "qualification_evidence_only": false, - "qualification_fault_mutations": [], - "readback": null, - "recorded_surface": null, - "render_scale": null, - "required_identity_step_ids": [], - "results": [ - { - "actuation": null, - "after_png": "steps/step_000_after.png", - "api_fallback": null, - "before_png": "steps/step_000_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Username Password Sign In", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 195 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_000", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_001_after.png", - "api_fallback": null, - "before_png": "steps/step_001_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'nurse.demo'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_001", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_002_after.png", - "api_fallback": null, - "before_png": "steps/step_002_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 264 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_002", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_003_after.png", - "api_fallback": null, - "before_png": "steps/step_003_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'mockmed-demo-pass'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_003", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_004_after.png", - "api_fallback": null, - "before_png": "steps/step_004_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Sign In'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 119, - 324 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_004", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_005_after.png", - "api_fallback": null, - "before_png": "steps/step_005_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": { - "applied": true, - "kind": "anchor_refresh", - "new_anchor": { - "click_point": [ - 775, - 186 - ], - "context_text": "Jane Sample Knee pain referral High", - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 30, - "concats": [ - { - "c": "69675b2937c1909a", - "digit": false, - "i": 0, - "n": 10, - "name": true, - "r": "69675b2937c1909a", - "size": 2 - }, - { - "c": "dbe64c04bc7185b6", - "digit": false, - "i": 0, - "n": 14, - "name": true, - "r": "dbe64c04bc7185b6", - "size": 3 - }, - { - "c": "56018def605c583a", - "digit": false, - "i": 0, - "n": 18, - "name": true, - "r": "6df16f469c1ab4d1", - "size": 4 - }, - { - "c": "b821d403e41aaaff", - "digit": false, - "i": 1, - "n": 10, - "name": true, - "r": "b821d403e41aaaff", - "size": 2 - }, - { - "c": "30f085740d300e1d", - "digit": false, - "i": 1, - "n": 14, - "name": true, - "r": "8eebae20ffb49862", - "size": 3 - }, - { - "c": "276dd340e53188c6", - "digit": false, - "i": 1, - "n": 22, - "name": true, - "r": "f5973e32249138de", - "size": 4 - }, - { - "c": "788ba58ce0f8ff18", - "digit": false, - "i": 2, - "n": 8, - "name": true, - "r": "9da2a27f3ea7ac32", - "size": 2 - }, - { - "c": "8fca29d0fff9f063", - "digit": false, - "i": 2, - "n": 16, - "name": true, - "r": "1d29319cd27831c2", - "size": 3 - }, - { - "c": "37e34615487ed058", - "digit": false, - "i": 2, - "n": 20, - "name": true, - "r": "11229dedf7c779e4", - "size": 4 - }, - { - "c": "12093ff1c800b92c", - "digit": false, - "i": 3, - "n": 12, - "name": true, - "r": "285db341ce41190d", - "size": 2 - }, - { - "c": "fe555202397f9f9c", - "digit": false, - "i": 3, - "n": 16, - "name": true, - "r": "badcb77d3805aa8c", - "size": 3 - }, - { - "c": "be66deb82e3efd44", - "digit": false, - "i": 4, - "n": 12, - "name": true, - "r": "f620a3d6cc3f4d08", - "size": 2 - } - ], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "captured_context|exact|": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "structured|exact|": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5" - }, - "structured": "eddd26191036238d", - "tokens": [ - { - "alpha": true, - "c": "9e8e1645fdec34d0", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "9e8e1645fdec34d0" - }, - { - "alpha": true, - "c": "0d68e18d565ed360", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 6, - "name": true, - "r": "0d68e18d565ed360" - }, - { - "alpha": true, - "c": "6b80bb4112f844a5", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "6b80bb4112f844a5" - }, - { - "alpha": true, - "c": "20338486779884fb", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "4c5b884487197d9d" - }, - { - "alpha": true, - "c": "8a2c79da10756add", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 8, - "name": true, - "r": "8a2c79da10756add" - }, - { - "alpha": true, - "c": "bd8a1dea16c274d2", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "63c0d27e3746e3af" - } - ] - }, - "landmarks": [ - { - "distance_px": 52, - "dx_px": 21, - "dy_px": 48, - "ocr_text": "Action", - "relation": "above" - }, - { - "distance_px": 58, - "dx_px": -2, - "dy_px": -58, - "ocr_text": "Open", - "relation": "below" - } - ], - "ocr_text": "View", - "region": [ - 695, - 154, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Open", - "role": "button", - "selector": "#open-p1", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_005.png" - }, - "old_anchor": { - "click_point": [ - 775, - 186 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 30, - "concats": [ - { - "c": "69675b2937c1909a", - "digit": false, - "i": 0, - "n": 10, - "name": true, - "r": "69675b2937c1909a", - "size": 2 - }, - { - "c": "dbe64c04bc7185b6", - "digit": false, - "i": 0, - "n": 14, - "name": true, - "r": "dbe64c04bc7185b6", - "size": 3 - }, - { - "c": "56018def605c583a", - "digit": false, - "i": 0, - "n": 18, - "name": true, - "r": "6df16f469c1ab4d1", - "size": 4 - }, - { - "c": "b821d403e41aaaff", - "digit": false, - "i": 1, - "n": 10, - "name": true, - "r": "b821d403e41aaaff", - "size": 2 - }, - { - "c": "30f085740d300e1d", - "digit": false, - "i": 1, - "n": 14, - "name": true, - "r": "8eebae20ffb49862", - "size": 3 - }, - { - "c": "276dd340e53188c6", - "digit": false, - "i": 1, - "n": 22, - "name": true, - "r": "f5973e32249138de", - "size": 4 - }, - { - "c": "788ba58ce0f8ff18", - "digit": false, - "i": 2, - "n": 8, - "name": true, - "r": "9da2a27f3ea7ac32", - "size": 2 - }, - { - "c": "8fca29d0fff9f063", - "digit": false, - "i": 2, - "n": 16, - "name": true, - "r": "1d29319cd27831c2", - "size": 3 - }, - { - "c": "37e34615487ed058", - "digit": false, - "i": 2, - "n": 20, - "name": true, - "r": "11229dedf7c779e4", - "size": 4 - }, - { - "c": "12093ff1c800b92c", - "digit": false, - "i": 3, - "n": 12, - "name": true, - "r": "285db341ce41190d", - "size": 2 - }, - { - "c": "fe555202397f9f9c", - "digit": false, - "i": 3, - "n": 16, - "name": true, - "r": "badcb77d3805aa8c", - "size": 3 - }, - { - "c": "be66deb82e3efd44", - "digit": false, - "i": 4, - "n": 12, - "name": true, - "r": "f620a3d6cc3f4d08", - "size": 2 - } - ], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "captured_context|exact|": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "structured|exact|": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5" - }, - "structured": "eddd26191036238d", - "tokens": [ - { - "alpha": true, - "c": "9e8e1645fdec34d0", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "9e8e1645fdec34d0" - }, - { - "alpha": true, - "c": "0d68e18d565ed360", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 6, - "name": true, - "r": "0d68e18d565ed360" - }, - { - "alpha": true, - "c": "6b80bb4112f844a5", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "6b80bb4112f844a5" - }, - { - "alpha": true, - "c": "20338486779884fb", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "4c5b884487197d9d" - }, - { - "alpha": true, - "c": "8a2c79da10756add", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 8, - "name": true, - "r": "8a2c79da10756add" - }, - { - "alpha": true, - "c": "bd8a1dea16c274d2", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "63c0d27e3746e3af" - } - ] - }, - "landmarks": [ - { - "distance_px": 52, - "dx_px": 21, - "dy_px": 48, - "ocr_text": "Action", - "relation": "above" - }, - { - "distance_px": 58, - "dx_px": -2, - "dy_px": -58, - "ocr_text": "Open", - "relation": "below" - } - ], - "ocr_text": "Open", - "region": [ - 695, - 154, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Open", - "role": "button", - "selector": "#open-p1", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_005.png" - }, - "rung_used": "geometry", - "screenshot": "heals/step_005/screen.png", - "step_id": "step_005" - }, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane SampleKnee pain referralHigh", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Open'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 0.9, - "elapsed_ms": "", - "point": [ - 775, - 186 - ], - "rung": "geometry", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_005", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_006_after.png", - "api_fallback": null, - "before_png": "steps/step_006_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'New Encounter'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 114, - 159 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_006", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_007_after.png", - "api_fallback": null, - "before_png": "steps/step_007_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 85, - 214 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_007", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_008_after.png", - "api_fallback": null, - "before_png": "steps/step_008_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 344, - 350 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_008", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_009_after.png", - "api_fallback": null, - "before_png": "steps/step_009_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type ", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": null, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_009", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_010_after.png", - "api_fallback": null, - "before_png": "steps/step_010_before.png", - "delivery_attempted": false, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": "Step 'step_010' (click 'Save Encounter') is irreversible but only resolved via the 'geometry' rung — needs human confirmation; refusing to act (v0 policy)", - "exception_handled": false, - "failure_category": "safety_halt", - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Save Encounter'", - "interstitial_actions": [], - "ok": false, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": null, - "program_scope": [], - "resolution": { - "confidence": 0.9, - "elapsed_ms": "", - "point": [ - 134, - 457 - ], - "rung": "geometry", - "structural_handle": null - }, - "risk": "irreversible", - "risk_explanation": "retained action context names a consequential state change", - "risk_review_required": false, - "safety_halt": true, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_010", - "submit_binding_verified": null, - "timings": "" - } - ], - "run_id_sha256": "", - "rung_counts": { - "geometry": 1, - "template": 6 - }, - "screenshots_may_leave_box": false, - "source_recording_sha256": null, - "started_at": "", - "success": false, - "surface_override": false, - "terminal_outcome": null, - "total_ms": "", - "transaction_billable": false, - "transaction_outcome": "HALTED_BEFORE_EFFECT", - "transaction_platform_fault": false, - "visited_states": [], - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", - "workflow_name": "golden-triage" - }, - "trace": [ - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - }, - { - "args": [ - 210, - 195 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "nurse.demo" - ], - "call": "type_text" - }, - { - "args": [ - 210, - 264 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "mockmed-demo-pass" - ], - "call": "type_text" - }, - { - "args": [ - 119, - 324 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 775, - 186 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 114, - 159 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 85, - 214 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 344, - 350 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "Golden triage booking three months" - ], - "call": "type_text" - }, - { - "call": "cancel_guarded_coordinate" - }, - { - "call": "cancel_guarded_keyboard" - }, - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - } - ] -} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_sort.json b/packages/flow/tests/golden_runs/baselines/mockmed_sort.json deleted file mode 100644 index 035a65f8c0..0000000000 --- a/packages/flow/tests/golden_runs/baselines/mockmed_sort.json +++ /dev/null @@ -1,733 +0,0 @@ -{ - "app_state": { - "banner": null, - "enc_item": null, - "hash": "#tasks" - }, - "artifacts": { - "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", - "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", - "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", - "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", - "steps/step_004_after.png": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58", - "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", - "steps/step_005_after.png": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58", - "steps/step_005_before.png": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58" - }, - "environment": { - "platform": "linux", - "playwright": "1.64.1" - }, - "report": { - "approved_unverified_effect_step_ids": [], - "attended_program_transition_evidence": [], - "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "business_decision_evidence": [], - "canceled": false, - "change_ledger": [], - "effect_journal": [], - "est_model_cost_usd": 0.0, - "execution_completed": false, - "execution_entry_url": null, - "execution_origin": null, - "execution_outcome": "HALTED", - "execution_profile": "demo", - "execution_target_kind": null, - "external_network_calls": "unknown", - "governed_approval_source": null, - "governed_authorization_created_at": null, - "governed_authorization_id": null, - "governed_authorized_effect_contracts": {}, - "governed_minimum_effect_tier": null, - "governed_policy_contract_sha256": null, - "governed_policy_name": null, - "governed_qualification_campaign_id_sha256": null, - "governed_qualification_case_action_paths": {}, - "governed_qualification_case_id_sha256": null, - "governed_qualification_case_input_sha256": null, - "governed_qualification_case_kind": null, - "governed_qualification_fault_driver_contract_sha256": null, - "governed_qualification_fault_driver_id": null, - "governed_qualification_fault_driver_key_id": null, - "governed_qualification_fault_step_id_sha256": null, - "governed_qualification_project_contract_sha256": null, - "governed_qualification_project_id": null, - "governed_qualification_project_revision": null, - "governed_qualification_run_id_sha256": null, - "governed_qualified_effect_requirements": [], - "governed_runtime_inputs_digest": null, - "halt": { - "completed_intents": [ - "click recorded visual target", - "type 'nurse.demo'", - "click recorded visual target", - "type 'mockmed-demo-pass'", - "click 'Sign In'" - ], - "intent": "click 'Open'", - "observed_texts": [ - "MockMed", - "Clinical demo — all data is fake", - "Referral Tasks", - "Patient", - "Reason", - "Priority", - "Action", - "Alex Testcase", - "Cardiology follow-up", - "Medium", - "Open", - "Jane Sample", - "Knee pain referral", - "High", - "Sam Specimen", - "Dermatology consult", - "Low" - ], - "outcome": "halt", - "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", - "state_id": "step_005" - }, - "heal_count": 0, - "idempotency_key": null, - "idempotent_replay": false, - "identity_applicable_steps": 8, - "identity_armed_steps": 6, - "identity_unarmed": [ - { - "intent": "click recorded visual target", - "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", - "step_id": "step_002" - }, - { - "intent": "click 'Sign In'", - "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", - "step_id": "step_004" - } - ], - "loop_iterations": [], - "model_calls": 0, - "observed_application_sha256": null, - "observed_application_version_sha256": null, - "observed_environment_binding_sha256": null, - "observed_environment_digest": null, - "observed_session_sha256": null, - "outcome_envelope": { - "compensation_actions": 0, - "evidence_classes": [ - "identity", - "postcondition" - ], - "execution_completed": false, - "external_network_calls": "unknown", - "model_calls": 0, - "outcome": "HALTED", - "passed_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 9 - }, - "postcondition_evidence": [ - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "9b70a2ea1d1071b2c015a04a98d61ad59df9bcb7effe10f57a12ee424e599bff", - "result_index": 0, - "step_contract_sha256": "ad733b23a93a715e2f7c2d7ae19d478fbb3a750e79251091ac3108e93f919ec4", - "step_index": 0, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "413db21ba6d670be4f009c8dde2f4fa55689a10030fcc3e63e76089471826851", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "8b7ec3528a0177f5906c7d35ea926a33d34163ffe00ac78d0223f96a2f5f6305", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "30ec7e6323daa8163a947eff64c13f233a9f0a6d777b1e56c5afe2985b1d9678", - "result_index": 1, - "step_contract_sha256": "4ae2e4caf76ef8d8186d29714205f90eae14563338629aed2916ffbd6a6cbd8f", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "c6fe8f33b0f09512b3630bce04b9d767ce6731e0df0d80c1586fe8c68d41181c", - "result_index": 2, - "step_contract_sha256": "22d10edc9d6f99243f77deebfe68788d9fcdb0c7be627c6283b174dba1d06c98", - "step_index": 2, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "88ee8c8854dabf9f68d60f9bf2631a62fa20c2ce7b88e222c1c204f41f451b1b", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "2598944e8f84487aba9ba67d8f2f2251c9f1933344da14683b1d874c1001da3d", - "result_index": 3, - "step_contract_sha256": "220e1213396c1757eef59719aeca4939ceffe092d162399710526ad89184b138", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "0f5ef1420b664d8df9756bf111b26f251174831c86a49e38c7a443084b41b1e0", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "1f8c7b0448198eb740574e60056cbcada97ac5474bed63621b25c7b880936db1", - "result_index": 4, - "step_contract_sha256": "fcbb75f7b55036dca7872930278067f20d71e04eb2deaa5cdac1bb0d6f436eee", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "cc2415e172e0ced5562033dfdfeec6680302a387ca1c8efc4835a0a5af690cb7", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "unverifiable", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "c8feb3cd195999d286e8cd28144535e4a2b627663d1244cb2ae9d47c767bffa8", - "result_index": 5, - "step_contract_sha256": "194377af8436dbb73879a5897e09c263b1e132dd8aed9d5b3d5dc3af74fbbf98", - "step_index": 5, - "verdict": "unverifiable", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - } - ], - "production_eligible": false, - "profile": "demo", - "required_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 11 - }, - "version": "openadapt.execution-outcome/v1", - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e" - }, - "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", - "params": { - "note": "Golden triage booking three months" - }, - "production_eligible": false, - "program_exception_evidence": [], - "program_transition_evidence": [], - "qualification_environment_observer_contract_sha256": null, - "qualification_environment_observer_id": null, - "qualification_evidence_only": false, - "qualification_fault_mutations": [], - "readback": null, - "recorded_surface": null, - "render_scale": null, - "required_identity_step_ids": [], - "results": [ - { - "actuation": null, - "after_png": "steps/step_000_after.png", - "api_fallback": null, - "before_png": "steps/step_000_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Username Password Sign In", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 195 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_000", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_001_after.png", - "api_fallback": null, - "before_png": "steps/step_001_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'nurse.demo'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_001", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_002_after.png", - "api_fallback": null, - "before_png": "steps/step_002_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 210, - 264 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_002", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_003_after.png", - "api_fallback": null, - "before_png": "steps/step_003_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'mockmed-demo-pass'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_003", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_004_after.png", - "api_fallback": null, - "before_png": "steps/step_004_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Sign In'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 119, - 324 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_004", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_005_after.png", - "api_fallback": null, - "before_png": "steps/step_005_before.png", - "delivery_attempted": false, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", - "exception_handled": false, - "failure_category": "safety_halt", - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": { - "abstain_reason": null, - "coverage": 0.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Alex TestcaseCardiology follow-upMedium", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "mismatch" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Open'", - "interstitial_actions": [], - "ok": false, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": null, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 775, - 186 - ], - "rung": "template", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": true, - "safety_refusal_evidence": { - "code": "identity_conflict", - "detector_input_sha256": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58", - "stage": "identity_verification" - }, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_005", - "submit_binding_verified": null, - "timings": "" - } - ], - "run_id_sha256": "", - "rung_counts": { - "template": 3 - }, - "screenshots_may_leave_box": false, - "source_recording_sha256": null, - "started_at": "", - "success": false, - "surface_override": false, - "terminal_outcome": null, - "total_ms": "", - "transaction_billable": false, - "transaction_outcome": "REJECTED_POLICY", - "transaction_platform_fault": false, - "visited_states": [], - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", - "workflow_name": "golden-triage" - }, - "trace": [ - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - }, - { - "args": [ - 210, - 195 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "nurse.demo" - ], - "call": "type_text" - }, - { - "args": [ - 210, - 264 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "mockmed-demo-pass" - ], - "call": "type_text" - }, - { - "args": [ - 119, - 324 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "call": "cancel_guarded_coordinate" - }, - { - "call": "cancel_guarded_keyboard" - }, - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - } - ] -} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_theme.json b/packages/flow/tests/golden_runs/baselines/mockmed_theme.json deleted file mode 100644 index 2ce9768da6..0000000000 --- a/packages/flow/tests/golden_runs/baselines/mockmed_theme.json +++ /dev/null @@ -1,2721 +0,0 @@ -{ - "app_state": { - "banner": "Encounter saved — Golden triage booking three months", - "enc_item": "Triage — Golden triage booking three months", - "hash": "#patient/p1" - }, - "artifacts": { - "heals/step_000/heal.json": "bf7aef2794d4e1a56acf5ea0cc9ad61b9de9b464e474f4dbc58a3e29f8f6675d", - "heals/step_000/patch.json": "71cd67799906bf7c592709ae3ae7647a5e27b296994947579d8b31ea910badd8", - "heals/step_000/screen.png": "9e43117c8f5dcc3ba3a5e6eb636f9e736b6c31feaee783d080458d35a162c5e4", - "heals/step_000/template.png": "59e7a505c0762bde07517ef08e419406cd83f7024620b863a3924bcad58f4bf4", - "heals/step_002/heal.json": "9746367158967ae5697fec0528917c8c6076f11c127230cd683e5572eba11e8f", - "heals/step_002/patch.json": "e6809b37b0d857625c24b4bd7e13ec602d2caa85c75468de45763191b78e7725", - "heals/step_002/screen.png": "f3e6efed2eaf69d8e3f7ea4f3f03d6010b6520add327ca0d20cc8fe15b3304c0", - "heals/step_002/template.png": "59e7a505c0762bde07517ef08e419406cd83f7024620b863a3924bcad58f4bf4", - "heals/step_004/heal.json": "9d05a48d13cd8badbc0abaf75555a616bb92833615b2752c13be4fdf0b776c5c", - "heals/step_004/patch.json": "6fd04b3d1545c31ae069240fab0ad3b6d51d98f1785b2bb77b54a253df353ebd", - "heals/step_004/screen.png": "d4b2458d828ecadf3a558090f4d9079b8dffcda558e9a7a709d699802d950195", - "heals/step_004/template.png": "c6e8bd05f344066f595bf57ac4a1523be2b6153cf71d57b2ca27807ca872f0bb", - "heals/step_005/heal.json": "7137bd2e2e8d2601e1c182a67d396711c55806a85a728d4272a70242fc273576", - "heals/step_005/patch.json": "88b554680e2a36a5d93a532c6e3c995be7fedf8857988409502a0512e04e2655", - "heals/step_005/screen.png": "0cf5a5011ed7f8fa456398dc5e2a9ae679813decd68ce9e78ff7dd4f79006269", - "heals/step_005/template.png": "330ed0efd8adf2c753d080188513c917969d8aafbeed14d0da248694d371e1c4", - "heals/step_006/heal.json": "3d96fbc952e98e64398a24bb35838e5a7ab22258cfe9640a41894e4d63b6ffa9", - "heals/step_006/patch.json": "36f0e22ed46b0fd824f77418cc844368b6377a4794c0133111e42117f21fa720", - "heals/step_006/screen.png": "1b9ebdb9d885ba46909fc8fb32fccb362380b5b576e49e1e91bb1224c36a0d01", - "heals/step_006/template.png": "0d18d8e6f13f243c09ce02ef3646a6544c11bd7136e053a305782526a17c4bed", - "heals/step_007/heal.json": "6ff0d96a003a79c1e0019e0b53e52c35b13e9761f2c4ef4617f2686e1a5a6479", - "heals/step_007/patch.json": "8443f1cc75d1f3ae8850deba5f17fa14376464d7534464ed1bc3ee033b02aa66", - "heals/step_007/screen.png": "1bce149701c11c2c6595aacd14fedddf710cea19b2772071698557866ceb6b56", - "heals/step_007/template.png": "ce94517fe2c30adc2379a09c8e7fc0569bd06e5eb63bd24cdc401254dc5463da", - "heals/step_008/heal.json": "24550df84b0787d029dc93107c4ef75b56630720a4382f6ea3c6d1e3cdee1585", - "heals/step_008/patch.json": "fd9a4e1164b2422356e1a1f2967150712f1f8ee7d0f68725d37b08a06ceb833f", - "heals/step_008/screen.png": "d58dd3834cf115d70078e55f7e9e8ba30407db4c939154d309977df41dd76912", - "heals/step_008/template.png": "13148f2b0f7acf7cf845361f49c4bce75d767eced0aff8f6f833db483bcf9ea8", - "heals/step_010/heal.json": "e43dbbcddc14c4740fb69901d17ac8e2c7bf2649dffee7b25883da9985fe921b", - "heals/step_010/patch.json": "9ad14f25582935468fa2900a75b4808ebbd072bce75454bea90e8d64be94aa48", - "heals/step_010/screen.png": "62ac72d7b812e699194ef0cb7cc5dca4c59687e48d7c95809050240c3f3ae2fb", - "heals/step_010/template.png": "588067ceff3b713e39d281edfa82ccbe9ec3bf9e3bd79a0a9e494b61051512cc", - "steps/step_000_after.png": "3bc795168abc8711dbd98e9b00d2f281769a04f17f00fa26bb736e6b98c81f11", - "steps/step_000_before.png": "9e43117c8f5dcc3ba3a5e6eb636f9e736b6c31feaee783d080458d35a162c5e4", - "steps/step_001_after.png": "f3e6efed2eaf69d8e3f7ea4f3f03d6010b6520add327ca0d20cc8fe15b3304c0", - "steps/step_001_before.png": "3bc795168abc8711dbd98e9b00d2f281769a04f17f00fa26bb736e6b98c81f11", - "steps/step_002_after.png": "cce1a9982d9ab4aee39eb450454413232eec5c3231793376e55f1db972ff2665", - "steps/step_002_before.png": "f3e6efed2eaf69d8e3f7ea4f3f03d6010b6520add327ca0d20cc8fe15b3304c0", - "steps/step_003_after.png": "d4b2458d828ecadf3a558090f4d9079b8dffcda558e9a7a709d699802d950195", - "steps/step_003_before.png": "cce1a9982d9ab4aee39eb450454413232eec5c3231793376e55f1db972ff2665", - "steps/step_004_after.png": "0cf5a5011ed7f8fa456398dc5e2a9ae679813decd68ce9e78ff7dd4f79006269", - "steps/step_004_before.png": "d4b2458d828ecadf3a558090f4d9079b8dffcda558e9a7a709d699802d950195", - "steps/step_005_after.png": "1b9ebdb9d885ba46909fc8fb32fccb362380b5b576e49e1e91bb1224c36a0d01", - "steps/step_005_before.png": "0cf5a5011ed7f8fa456398dc5e2a9ae679813decd68ce9e78ff7dd4f79006269", - "steps/step_006_after.png": "1bce149701c11c2c6595aacd14fedddf710cea19b2772071698557866ceb6b56", - "steps/step_006_before.png": "1b9ebdb9d885ba46909fc8fb32fccb362380b5b576e49e1e91bb1224c36a0d01", - "steps/step_007_after.png": "d58dd3834cf115d70078e55f7e9e8ba30407db4c939154d309977df41dd76912", - "steps/step_007_before.png": "1bce149701c11c2c6595aacd14fedddf710cea19b2772071698557866ceb6b56", - "steps/step_008_after.png": "278f25f264525b4b68d93edc080b33a538f564ac90443b4c97c70ce48741672f", - "steps/step_008_before.png": "d58dd3834cf115d70078e55f7e9e8ba30407db4c939154d309977df41dd76912", - "steps/step_009_after.png": "eb3dcbc766977b9c098da061c640498e113ff8b4c0a86b878f2db99ffdf33d0a", - "steps/step_009_before.png": "278f25f264525b4b68d93edc080b33a538f564ac90443b4c97c70ce48741672f", - "steps/step_010_after.png": "0ebcd362b90dcc7373c13b8b570272facdf3dad65666174144f388fcf7613f9e", - "steps/step_010_before.png": "62ac72d7b812e699194ef0cb7cc5dca4c59687e48d7c95809050240c3f3ae2fb" - }, - "environment": { - "platform": "linux", - "playwright": "1.64.1" - }, - "report": { - "approved_unverified_effect_step_ids": [], - "attended_program_transition_evidence": [], - "bundle_content_digest": "fec73dc2a5e5839b60a7460c7d2d9e698e647a3b62c49abf1ed531d8c5a8238f", - "business_decision_evidence": [], - "canceled": false, - "change_ledger": [ - { - "attempt_state": "delivered", - "effects": [], - "intent": "click 'Save Encounter'", - "may_need_undo": true, - "position": 11, - "status": "unknown", - "step_id": "step_010", - "undo_id": null - } - ], - "effect_journal": [ - { - "approved_unverified": false, - "attempt_state": "delivered", - "collateral_reconciliation_actions": 0, - "consequential": true, - "effect_verified": null, - "intended_effect_contract_hashes": [], - "intent": "click 'Save Encounter'", - "observed_at": null, - "observed_effect": "unknown", - "step_id": "step_010", - "verification_performed": false - } - ], - "est_model_cost_usd": 0.0, - "execution_completed": true, - "execution_entry_url": null, - "execution_origin": null, - "execution_outcome": "COMPLETED_UNVERIFIED", - "execution_profile": "demo", - "execution_target_kind": null, - "external_network_calls": "unknown", - "governed_approval_source": null, - "governed_authorization_created_at": null, - "governed_authorization_id": null, - "governed_authorized_effect_contracts": {}, - "governed_minimum_effect_tier": null, - "governed_policy_contract_sha256": null, - "governed_policy_name": null, - "governed_qualification_campaign_id_sha256": null, - "governed_qualification_case_action_paths": {}, - "governed_qualification_case_id_sha256": null, - "governed_qualification_case_input_sha256": null, - "governed_qualification_case_kind": null, - "governed_qualification_fault_driver_contract_sha256": null, - "governed_qualification_fault_driver_id": null, - "governed_qualification_fault_driver_key_id": null, - "governed_qualification_fault_step_id_sha256": null, - "governed_qualification_project_contract_sha256": null, - "governed_qualification_project_id": null, - "governed_qualification_project_revision": null, - "governed_qualification_run_id_sha256": null, - "governed_qualified_effect_requirements": [], - "governed_runtime_inputs_digest": null, - "halt": null, - "heal_count": 8, - "idempotency_key": null, - "idempotent_replay": false, - "identity_applicable_steps": 8, - "identity_armed_steps": 6, - "identity_unarmed": [ - { - "intent": "click recorded visual target", - "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", - "step_id": "step_002" - }, - { - "intent": "click 'Sign In'", - "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", - "step_id": "step_004" - } - ], - "loop_iterations": [], - "model_calls": 0, - "observed_application_sha256": null, - "observed_application_version_sha256": null, - "observed_environment_binding_sha256": null, - "observed_environment_digest": null, - "observed_session_sha256": null, - "outcome_envelope": { - "compensation_actions": 0, - "evidence_classes": [ - "identity", - "postcondition" - ], - "execution_completed": true, - "external_network_calls": "unknown", - "model_calls": 0, - "outcome": "COMPLETED_UNVERIFIED", - "passed_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 18 - }, - "postcondition_evidence": [ - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "0012cc7dab464d2bda06aad7074c16fc67e24003eb485a10f45342b874b5563b", - "result_index": 0, - "step_contract_sha256": "b73ab43f962fd78edc8552b17c995a49ee4df914e6ed4bcab3e83adeadfc0296", - "step_index": 0, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "c05b0c4ec91e430a40d834fac8c0efa9ea3ab8d91579c0a1a330454b3e253011", - "result_index": 1, - "step_contract_sha256": "7db2c57ede1c11a8b54dcea8ffa671ada17f1570b87299b8072d028bf7ce0bbc", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "35c7a20e3c1fb123a0a70f12f05e99e8eb58fe8b5424bc4ee94c56093d964208", - "result_index": 1, - "step_contract_sha256": "7db2c57ede1c11a8b54dcea8ffa671ada17f1570b87299b8072d028bf7ce0bbc", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "bc0f848c079bc69cf1db66862a17f8d792757be50240960663c9fc842d58e746", - "result_index": 1, - "step_contract_sha256": "7db2c57ede1c11a8b54dcea8ffa671ada17f1570b87299b8072d028bf7ce0bbc", - "step_index": 1, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "2d9242772e6e034135a2603f46c7c817f58dedc93ea190afd44d07636531c798", - "result_index": 2, - "step_contract_sha256": "f6dd97183cf5c3a25d3da79e4d013d64e82fd65e9e87821e0d8c06087d0b6772", - "step_index": 2, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "d42211c47d6087809121a2a6ce9342809a0b6c6adb5f72e66b3b1fb46ea59dc5", - "result_index": 3, - "step_contract_sha256": "48e381571d821f2df6146c8045092c5f40b5dcd339985477c416d49065675dd3", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "8d7720a455a1872aba933a5d0123544d01f66aa4ec0662258950044c5506c855", - "result_index": 3, - "step_contract_sha256": "48e381571d821f2df6146c8045092c5f40b5dcd339985477c416d49065675dd3", - "step_index": 3, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "42f752d02043921afd9974c53d595d07af94c804b8c87f8065d2e44f0e4a117c", - "result_index": 4, - "step_contract_sha256": "9442103e8d0384049e1966c87d31ce59792a36a61f0a780fa9a8a344b5983191", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "701dde0b1a4df305cd969da278fe6d8df56bd9a55aaeb4568fbeba61ff079dc1", - "result_index": 4, - "step_contract_sha256": "9442103e8d0384049e1966c87d31ce59792a36a61f0a780fa9a8a344b5983191", - "step_index": 4, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "999fee233dd8c4d32d9a2a7c2e0577f097ce067bf5422a5bdc417dbc15ab5706", - "result_index": 5, - "step_contract_sha256": "0f3f3fc0a9e4d010017fe2b258c44f38004485047498f13659b243c61759a7d7", - "step_index": 5, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "76288bf96854bc9bcc2e5e7fa39e49bde748fe4cc97435ebd225cf15bcb2e9da", - "result_index": 5, - "step_contract_sha256": "0f3f3fc0a9e4d010017fe2b258c44f38004485047498f13659b243c61759a7d7", - "step_index": 5, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "df52da3e3177966f6c4746091759640e6e6029b3ed9a714c3112c261a8e97837", - "result_index": 6, - "step_contract_sha256": "79803ce0beb0dad2488b74ab60beb142654e19f43683ef256295f0bff094d566", - "step_index": 6, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "29eda2007bc40d6a940e3cbbcd048dd0d678f95f60e2318b1f5f541e6387fde7", - "result_index": 6, - "step_contract_sha256": "79803ce0beb0dad2488b74ab60beb142654e19f43683ef256295f0bff094d566", - "step_index": 6, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "3128b052b3e747aba16d3ea173d3e080df540245a5de74223063f35d412dcd4f", - "result_index": 7, - "step_contract_sha256": "613e37e116ab42029f42e3a9583c030cee27fa220fcacbb1b038a74610b3dbb6", - "step_index": 7, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "24bb35c6dc63834332a481acf64c96481d9685ec4e68eaf9d7eeec4f64f7d825", - "result_index": 8, - "step_contract_sha256": "1c6c7dd0d2bcff3227331af88af0ff778888adfcf58e60191c9615413a5c5d1a", - "step_index": 8, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "type", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "intrinsic_input_readback", - "contract_sha256": "cdb5af77f85f9007c1838791cce7c0c5f7b8135de3d0063d32fe7623dc575921", - "result_index": 9, - "step_contract_sha256": "f31a2184e778d9608575479adda41e1aafb292bbc9c5dce5f74a6f3203545907", - "step_index": 9, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 0, - "contract_kind": "explicit_predicate", - "contract_sha256": "f3ace5d64ecdc21a521ea8fa5159b3237fbbd2cf66d9a151cccf3ec8eb0af50b", - "result_index": 10, - "step_contract_sha256": "26fbb91828d18d81ccd467fb0207482eae03b6e84e7e462feeff3d86a55ebd69", - "step_index": 10, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - { - "action_kind": "click", - "actuation_path": "gui", - "contract_index": 1, - "contract_kind": "explicit_predicate", - "contract_sha256": "3f5268f243361f8b9e56b394276051a2409846a1d07c8a4b813b281a8fc915d7", - "result_index": 10, - "step_contract_sha256": "26fbb91828d18d81ccd467fb0207482eae03b6e84e7e462feeff3d86a55ebd69", - "step_index": 10, - "verdict": "passed", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - } - ], - "production_eligible": false, - "profile": "demo", - "required_contracts": { - "authorization": 0, - "effect": 0, - "identity": 0, - "postcondition": 18 - }, - "version": "openadapt.execution-outcome/v1", - "workflow_contract_sha256": "904791cbbdebb2d2604554475116672806e6085d2016e4a18caf73f6e5d0b41a" - }, - "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", - "params": { - "note": "Golden triage booking three months" - }, - "production_eligible": false, - "program_exception_evidence": [], - "program_transition_evidence": [], - "qualification_environment_observer_contract_sha256": null, - "qualification_environment_observer_id": null, - "qualification_evidence_only": false, - "qualification_fault_mutations": [], - "readback": null, - "recorded_surface": null, - "render_scale": null, - "required_identity_step_ids": [], - "results": [ - { - "actuation": null, - "after_png": "steps/step_000_after.png", - "api_fallback": null, - "before_png": "steps/step_000_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": { - "applied": true, - "kind": "anchor_refresh", - "new_anchor": { - "click_point": [ - 214, - 195 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 0, - "concats": [], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "structured|exact|": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc,casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d" - }, - "structured": "5b3e20fe152a1c42", - "tokens": [] - }, - "landmarks": [ - { - "distance_px": 130, - "dx_px": 76, - "dy_px": 106, - "ocr_text": "Sign in to MockMed", - "relation": "above" - }, - { - "distance_px": 132, - "dx_px": 129, - "dy_px": 29, - "ocr_text": "Username", - "relation": "left_of" - } - ], - "ocr_text": null, - "region": [ - 134, - 163, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Username", - "role": "textbox", - "selector": "#username", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_000.png" - }, - "old_anchor": { - "click_point": [ - 214, - 195 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 0, - "concats": [], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "structured|exact|": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc,casefold": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "5b3e20fe152a1c4267454faf8de247dc0a923b22e1ca242324bcb3ceb083c086", - "structured|normalized|unicode_nfkc,collapse_whitespace": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d", - "structured|normalized|unicode_nfkc,strip_punctuation": "8542b1fe0e4a708dbf8d7d127ef488b64ae4011d7eac2655ef2fd492c4f1516d" - }, - "structured": "5b3e20fe152a1c42", - "tokens": [] - }, - "landmarks": [ - { - "distance_px": 130, - "dx_px": 76, - "dy_px": 106, - "ocr_text": "Sign in to MockMed", - "relation": "above" - }, - { - "distance_px": 132, - "dx_px": 129, - "dy_px": 29, - "ocr_text": "Username", - "relation": "left_of" - } - ], - "ocr_text": null, - "region": [ - 134, - 163, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Username", - "role": "textbox", - "selector": "#username", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_000.png" - }, - "rung_used": "geometry", - "screenshot": "heals/step_000/screen.png", - "step_id": "step_000" - }, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Username Password Sign In", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 0.9, - "elapsed_ms": "", - "point": [ - 214, - 195 - ], - "rung": "geometry", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_000", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_001_after.png", - "api_fallback": null, - "before_png": "steps/step_001_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'nurse.demo'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_001", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_002_after.png", - "api_fallback": null, - "before_png": "steps/step_002_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": { - "applied": true, - "kind": "anchor_refresh", - "new_anchor": { - "click_point": [ - 214, - 264 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": null, - "landmarks": [ - { - "distance_px": 112, - "dx_px": 94, - "dy_px": -60, - "ocr_text": "Sign In", - "relation": "left_of" - }, - { - "distance_px": 132, - "dx_px": 129, - "dy_px": 30, - "ocr_text": "Password", - "relation": "left_of" - } - ], - "ocr_text": null, - "region": [ - 134, - 232, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Password", - "role": "textbox", - "selector": "#password", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_002.png" - }, - "old_anchor": { - "click_point": [ - 214, - 264 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": null, - "landmarks": [ - { - "distance_px": 112, - "dx_px": 94, - "dy_px": -60, - "ocr_text": "Sign In", - "relation": "left_of" - }, - { - "distance_px": 132, - "dx_px": 129, - "dy_px": 30, - "ocr_text": "Password", - "relation": "left_of" - } - ], - "ocr_text": null, - "region": [ - 134, - 232, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Password", - "role": "textbox", - "selector": "#password", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_002.png" - }, - "rung_used": "geometry", - "screenshot": "heals/step_002/screen.png", - "step_id": "step_002" - }, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 0.9, - "elapsed_ms": "", - "point": [ - 214, - 264 - ], - "rung": "geometry", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_002", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_003_after.png", - "api_fallback": null, - "before_png": "steps/step_003_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type 'mockmed-demo-pass'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_003", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_004_after.png", - "api_fallback": null, - "before_png": "steps/step_004_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": { - "applied": true, - "kind": "anchor_refresh", - "new_anchor": { - "click_point": [ - 120, - 324 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": null, - "landmarks": [ - { - "distance_px": 95, - "dx_px": 34, - "dy_px": 89, - "ocr_text": "Password", - "relation": "above" - }, - { - "distance_px": 130, - "dx_px": 19, - "dy_px": 129, - "ocr_text": "nurse.demo", - "relation": "above" - } - ], - "ocr_text": "Sign In", - "region": [ - 40, - 292, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Sign In", - "role": "button", - "selector": "#signin", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_004.png" - }, - "old_anchor": { - "click_point": [ - 119, - 324 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": null, - "landmarks": [ - { - "distance_px": 95, - "dx_px": 34, - "dy_px": 89, - "ocr_text": "Password", - "relation": "above" - }, - { - "distance_px": 130, - "dx_px": 19, - "dy_px": 129, - "ocr_text": "nurse.demo", - "relation": "above" - } - ], - "ocr_text": "Sign In", - "region": [ - 39, - 292, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Sign In", - "role": "button", - "selector": "#signin", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_004.png" - }, - "rung_used": "ocr", - "screenshot": "heals/step_004/screen.png", - "step_id": "step_004" - }, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Sign In'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 120, - 324 - ], - "rung": "ocr", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_004", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_005_after.png", - "api_fallback": null, - "before_png": "steps/step_005_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": { - "applied": true, - "kind": "anchor_refresh", - "new_anchor": { - "click_point": [ - 777, - 186 - ], - "context_text": "Jane Sample Knee pain referral High", - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 30, - "concats": [ - { - "c": "69675b2937c1909a", - "digit": false, - "i": 0, - "n": 10, - "name": true, - "r": "69675b2937c1909a", - "size": 2 - }, - { - "c": "dbe64c04bc7185b6", - "digit": false, - "i": 0, - "n": 14, - "name": true, - "r": "dbe64c04bc7185b6", - "size": 3 - }, - { - "c": "56018def605c583a", - "digit": false, - "i": 0, - "n": 18, - "name": true, - "r": "6df16f469c1ab4d1", - "size": 4 - }, - { - "c": "b821d403e41aaaff", - "digit": false, - "i": 1, - "n": 10, - "name": true, - "r": "b821d403e41aaaff", - "size": 2 - }, - { - "c": "30f085740d300e1d", - "digit": false, - "i": 1, - "n": 14, - "name": true, - "r": "8eebae20ffb49862", - "size": 3 - }, - { - "c": "276dd340e53188c6", - "digit": false, - "i": 1, - "n": 22, - "name": true, - "r": "f5973e32249138de", - "size": 4 - }, - { - "c": "788ba58ce0f8ff18", - "digit": false, - "i": 2, - "n": 8, - "name": true, - "r": "9da2a27f3ea7ac32", - "size": 2 - }, - { - "c": "8fca29d0fff9f063", - "digit": false, - "i": 2, - "n": 16, - "name": true, - "r": "1d29319cd27831c2", - "size": 3 - }, - { - "c": "37e34615487ed058", - "digit": false, - "i": 2, - "n": 20, - "name": true, - "r": "11229dedf7c779e4", - "size": 4 - }, - { - "c": "12093ff1c800b92c", - "digit": false, - "i": 3, - "n": 12, - "name": true, - "r": "285db341ce41190d", - "size": 2 - }, - { - "c": "fe555202397f9f9c", - "digit": false, - "i": 3, - "n": 16, - "name": true, - "r": "badcb77d3805aa8c", - "size": 3 - }, - { - "c": "be66deb82e3efd44", - "digit": false, - "i": 4, - "n": 12, - "name": true, - "r": "f620a3d6cc3f4d08", - "size": 2 - } - ], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "captured_context|exact|": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "structured|exact|": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5" - }, - "structured": "eddd26191036238d", - "tokens": [ - { - "alpha": true, - "c": "9e8e1645fdec34d0", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "9e8e1645fdec34d0" - }, - { - "alpha": true, - "c": "0d68e18d565ed360", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 6, - "name": true, - "r": "0d68e18d565ed360" - }, - { - "alpha": true, - "c": "6b80bb4112f844a5", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "6b80bb4112f844a5" - }, - { - "alpha": true, - "c": "20338486779884fb", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "4c5b884487197d9d" - }, - { - "alpha": true, - "c": "8a2c79da10756add", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 8, - "name": true, - "r": "8a2c79da10756add" - }, - { - "alpha": true, - "c": "bd8a1dea16c274d2", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "63c0d27e3746e3af" - } - ] - }, - "landmarks": [ - { - "distance_px": 52, - "dx_px": 21, - "dy_px": 48, - "ocr_text": "Action", - "relation": "above" - }, - { - "distance_px": 58, - "dx_px": -2, - "dy_px": -58, - "ocr_text": "Open", - "relation": "below" - } - ], - "ocr_text": "Open", - "region": [ - 697, - 154, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Open", - "role": "button", - "selector": "#open-p1", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_005.png" - }, - "old_anchor": { - "click_point": [ - 775, - 186 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 30, - "concats": [ - { - "c": "69675b2937c1909a", - "digit": false, - "i": 0, - "n": 10, - "name": true, - "r": "69675b2937c1909a", - "size": 2 - }, - { - "c": "dbe64c04bc7185b6", - "digit": false, - "i": 0, - "n": 14, - "name": true, - "r": "dbe64c04bc7185b6", - "size": 3 - }, - { - "c": "56018def605c583a", - "digit": false, - "i": 0, - "n": 18, - "name": true, - "r": "6df16f469c1ab4d1", - "size": 4 - }, - { - "c": "b821d403e41aaaff", - "digit": false, - "i": 1, - "n": 10, - "name": true, - "r": "b821d403e41aaaff", - "size": 2 - }, - { - "c": "30f085740d300e1d", - "digit": false, - "i": 1, - "n": 14, - "name": true, - "r": "8eebae20ffb49862", - "size": 3 - }, - { - "c": "276dd340e53188c6", - "digit": false, - "i": 1, - "n": 22, - "name": true, - "r": "f5973e32249138de", - "size": 4 - }, - { - "c": "788ba58ce0f8ff18", - "digit": false, - "i": 2, - "n": 8, - "name": true, - "r": "9da2a27f3ea7ac32", - "size": 2 - }, - { - "c": "8fca29d0fff9f063", - "digit": false, - "i": 2, - "n": 16, - "name": true, - "r": "1d29319cd27831c2", - "size": 3 - }, - { - "c": "37e34615487ed058", - "digit": false, - "i": 2, - "n": 20, - "name": true, - "r": "11229dedf7c779e4", - "size": 4 - }, - { - "c": "12093ff1c800b92c", - "digit": false, - "i": 3, - "n": 12, - "name": true, - "r": "285db341ce41190d", - "size": 2 - }, - { - "c": "fe555202397f9f9c", - "digit": false, - "i": 3, - "n": 16, - "name": true, - "r": "badcb77d3805aa8c", - "size": 3 - }, - { - "c": "be66deb82e3efd44", - "digit": false, - "i": 4, - "n": 12, - "name": true, - "r": "f620a3d6cc3f4d08", - "size": 2 - } - ], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "captured_context|exact|": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,casefold": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "e495c27f885112ce51d6aeeff2de52dadd629f0cb488e109167ea507578fa241", - "captured_context|normalized|unicode_nfkc,collapse_whitespace": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "captured_context|normalized|unicode_nfkc,strip_punctuation": "719511b999019af3bff78edcdd690d2cc50ada94546e7ac4a6f3bf4c5a4faf71", - "structured|exact|": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,casefold": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "eddd26191036238d93ee49297ab3f9322c8342142d1835fafa62bb595ba443f8", - "structured|normalized|unicode_nfkc,collapse_whitespace": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5", - "structured|normalized|unicode_nfkc,strip_punctuation": "b783353af22e7279ae186d82f5dc0067bffa6502304686955791955a4094a2c5" - }, - "structured": "eddd26191036238d", - "tokens": [ - { - "alpha": true, - "c": "9e8e1645fdec34d0", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "9e8e1645fdec34d0" - }, - { - "alpha": true, - "c": "0d68e18d565ed360", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 6, - "name": true, - "r": "0d68e18d565ed360" - }, - { - "alpha": true, - "c": "6b80bb4112f844a5", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "6b80bb4112f844a5" - }, - { - "alpha": true, - "c": "20338486779884fb", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "4c5b884487197d9d" - }, - { - "alpha": true, - "c": "8a2c79da10756add", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 8, - "name": true, - "r": "8a2c79da10756add" - }, - { - "alpha": true, - "c": "bd8a1dea16c274d2", - "digit": false, - "gen": false, - "glyph": false, - "idsh": false, - "n": 4, - "name": true, - "r": "63c0d27e3746e3af" - } - ] - }, - "landmarks": [ - { - "distance_px": 52, - "dx_px": 21, - "dy_px": 48, - "ocr_text": "Action", - "relation": "above" - }, - { - "distance_px": 58, - "dx_px": -2, - "dy_px": -58, - "ocr_text": "Open", - "relation": "below" - } - ], - "ocr_text": "Open", - "region": [ - 695, - 154, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Open", - "role": "button", - "selector": "#open-p1", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_005.png" - }, - "rung_used": "ocr", - "screenshot": "heals/step_005/screen.png", - "step_id": "step_005" - }, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane SampleKnee pain referralHigh", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Open'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 777, - 186 - ], - "rung": "ocr", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_005", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_006_after.png", - "api_fallback": null, - "before_png": "steps/step_006_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": { - "applied": true, - "kind": "anchor_refresh", - "new_anchor": { - "click_point": [ - 113, - 159 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 0, - "concats": [], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" - }, - "structured": "c181cef4a5621cab", - "tokens": [] - }, - "landmarks": [ - { - "distance_px": 62, - "dx_px": 34, - "dy_px": -52, - "ocr_text": "Encounters", - "relation": "below" - }, - { - "distance_px": 85, - "dx_px": 24, - "dy_px": -82, - "ocr_text": "No encounters yet.", - "relation": "below" - } - ], - "ocr_text": "New Encounter", - "region": [ - 33, - 127, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "New Encounter", - "role": "button", - "selector": "#new-encounter", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_006.png" - }, - "old_anchor": { - "click_point": [ - 114, - 159 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 0, - "concats": [], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" - }, - "structured": "c181cef4a5621cab", - "tokens": [] - }, - "landmarks": [ - { - "distance_px": 62, - "dx_px": 34, - "dy_px": -52, - "ocr_text": "Encounters", - "relation": "below" - }, - { - "distance_px": 85, - "dx_px": 24, - "dy_px": -82, - "ocr_text": "No encounters yet.", - "relation": "below" - } - ], - "ocr_text": "New Encounter", - "region": [ - 34, - 127, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "New Encounter", - "role": "button", - "selector": "#new-encounter", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_006.png" - }, - "rung_used": "ocr", - "screenshot": "heals/step_006/screen.png", - "step_id": "step_006" - }, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'New Encounter'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 113, - 159 - ], - "rung": "ocr", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_006", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_007_after.png", - "api_fallback": null, - "before_png": "steps/step_007_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": { - "applied": true, - "kind": "anchor_refresh", - "new_anchor": { - "click_point": [ - 85, - 214 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 0, - "concats": [], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" - }, - "structured": "c181cef4a5621cab", - "tokens": [] - }, - "landmarks": [ - { - "distance_px": 71, - "dx_px": 44, - "dy_px": -56, - "ocr_text": "Note", - "relation": "below" - }, - { - "distance_px": 76, - "dx_px": -27, - "dy_px": 71, - "ocr_text": "New Encounter", - "relation": "above" - } - ], - "ocr_text": "Triage", - "region": [ - 5, - 182, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Triage", - "role": "button", - "selector": "#type-triage", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_007.png" - }, - "old_anchor": { - "click_point": [ - 85, - 214 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 0, - "concats": [], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" - }, - "structured": "c181cef4a5621cab", - "tokens": [] - }, - "landmarks": [ - { - "distance_px": 71, - "dx_px": 44, - "dy_px": -56, - "ocr_text": "Note", - "relation": "below" - }, - { - "distance_px": 76, - "dx_px": -27, - "dy_px": 71, - "ocr_text": "New Encounter", - "relation": "above" - } - ], - "ocr_text": null, - "region": [ - 5, - 182, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Triage", - "role": "button", - "selector": "#type-triage", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_007.png" - }, - "rung_used": "geometry", - "screenshot": "heals/step_007/screen.png", - "step_id": "step_007" - }, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 0.9, - "elapsed_ms": "", - "point": [ - 85, - 214 - ], - "rung": "geometry", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_007", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_008_after.png", - "api_fallback": null, - "before_png": "steps/step_008_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": { - "applied": true, - "kind": "anchor_refresh", - "new_anchor": { - "click_point": [ - 344, - 350 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 0, - "concats": [], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" - }, - "structured": "c181cef4a5621cab", - "tokens": [] - }, - "landmarks": [ - { - "distance_px": 194, - "dx_px": 138, - "dy_px": 137, - "ocr_text": "Consult", - "relation": "left_of" - }, - { - "distance_px": 286, - "dx_px": 135, - "dy_px": 252, - "ocr_text": "Jane Sample — MRN P1 — DOB 1980-01-01", - "relation": "above" - } - ], - "ocr_text": null, - "region": [ - 104, - 254, - 480, - 192 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Note", - "role": "textbox", - "selector": "#note", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_008.png" - }, - "old_anchor": { - "click_point": [ - 344, - 350 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 0, - "concats": [], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" - }, - "structured": "c181cef4a5621cab", - "tokens": [] - }, - "landmarks": [ - { - "distance_px": 194, - "dx_px": 138, - "dy_px": 137, - "ocr_text": "Consult", - "relation": "left_of" - }, - { - "distance_px": 286, - "dx_px": 135, - "dy_px": 252, - "ocr_text": "Jane Sample — MRN P1 — DOB 1980-01-01", - "relation": "above" - } - ], - "ocr_text": null, - "region": [ - 104, - 254, - 480, - 192 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Note", - "role": "textbox", - "selector": "#note", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_008.png" - }, - "rung_used": "geometry", - "screenshot": "heals/step_008/screen.png", - "step_id": "step_008" - }, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click recorded visual target", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 0.881, - "elapsed_ms": "", - "point": [ - 344, - 350 - ], - "rung": "geometry", - "structural_handle": null - }, - "risk": "reversible", - "risk_explanation": "control label has no retained consequential-write signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_008", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": null, - "after_png": "steps/step_009_after.png", - "api_fallback": null, - "before_png": "steps/step_009_before.png", - "delivery_attempted": true, - "delivery_receipt": null, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": null, - "identity": null, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": true, - "intent": "type ", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": null, - "program_scope": [], - "resolution": null, - "risk": "reversible", - "risk_explanation": "action has no retained consequential commit signal", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_009", - "submit_binding_verified": null, - "timings": "" - }, - { - "actuation": "guarded_coordinate", - "after_png": "steps/step_010_after.png", - "api_fallback": null, - "before_png": "steps/step_010_before.png", - "delivery_attempted": true, - "delivery_receipt": { - "delivered_at": "", - "native": false, - "operation": "guarded_coordinate_click", - "outcome_verified": false, - "receipt_id": "", - "status": "delivered", - "target_fingerprint": "" - }, - "delivery_uncertainty": null, - "drag_end_resolution": null, - "drift_oracle_calls": 0, - "effect_approved_unverified": false, - "effect_contract_hashes": [], - "effect_evidence": [], - "effect_results": [], - "effect_verified": null, - "elapsed_ms": "", - "error": null, - "exception_handled": false, - "failure_category": null, - "field_read": null, - "fresh_actuation_events": [], - "heal": { - "applied": true, - "kind": "anchor_refresh", - "new_anchor": { - "click_point": [ - 134, - 457 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 0, - "concats": [], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" - }, - "structured": "c181cef4a5621cab", - "tokens": [] - }, - "landmarks": [ - { - "distance_px": 210, - "dx_px": 94, - "dy_px": 188, - "ocr_text": "Note", - "relation": "above" - }, - { - "distance_px": 254, - "dx_px": -72, - "dy_px": 244, - "ocr_text": "Consult", - "relation": "above" - } - ], - "ocr_text": "Save Encounter", - "region": [ - 54, - 425, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Save Encounter", - "role": "button", - "selector": "#save-encounter", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_010.png" - }, - "old_anchor": { - "click_point": [ - 134, - 457 - ], - "context_text": null, - "identifier_crop": null, - "identifier_region": null, - "identity_template": { - "band_len": 0, - "concats": [], - "param_token_indices": {}, - "rests_on_confusable_identifier": false, - "salt": "911a5096acf288523d50080fd3dd74de", - "schema_version": 1, - "signal_hashes": { - "structured|exact|": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,casefold": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "c181cef4a5621cab94d21e1ce1145345ec8c0c7bb8dcecb15b87ccc3433b08b1", - "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "44590c62adbeebc8ff69b6cf87799db6ead64c86a3bf116c51de0f949fdcf90e", - "structured|normalized|unicode_nfkc,collapse_whitespace": "6b025fbd34f3d44a8f782b095ffa218888200197aff26b793ab15efe72a15e1f", - "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c", - "structured|normalized|unicode_nfkc,strip_punctuation": "c07f5b88b8111294f4fb2a7154d87e092fd858f111ab7e1411f0a7cfe974d87c" - }, - "structured": "c181cef4a5621cab", - "tokens": [] - }, - "landmarks": [ - { - "distance_px": 210, - "dx_px": 94, - "dy_px": 188, - "ocr_text": "Note", - "relation": "above" - }, - { - "distance_px": 254, - "dx_px": -72, - "dy_px": 244, - "ocr_text": "Consult", - "relation": "above" - } - ], - "ocr_text": "Save Encounter", - "region": [ - 54, - 425, - 160, - 64 - ], - "search_pad": 80, - "structural": { - "automation_id": null, - "frame_path": null, - "name": "Save Encounter", - "role": "button", - "selector": "#save-encounter", - "window_name": null - }, - "structured_identity": null, - "template": "templates/step_010.png" - }, - "rung_used": "ocr", - "screenshot": "heals/step_010/screen.png", - "step_id": "step_010" - }, - "identity": { - "abstain_reason": null, - "coverage": 1.0, - "expected": "", - "hover": null, - "known_id_evidence": null, - "known_id_halt": null, - "look_halt": null, - "looks": [], - "mode": "structured", - "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", - "param": null, - "pixel_evidence": null, - "quorum_required": null, - "quorum_verified": null, - "signal_evidence": [], - "status": "verified" - }, - "identity_first_frame_png": null, - "identity_first_read": null, - "identity_reobserved": false, - "input_retried": false, - "input_verified": null, - "intent": "click 'Save Encounter'", - "interstitial_actions": [], - "ok": true, - "postcondition_drift_rescues": [], - "postcondition_page_scale": null, - "postconditions_ok": true, - "program_scope": [], - "resolution": { - "confidence": 1.0, - "elapsed_ms": "", - "point": [ - 134, - 457 - ], - "rung": "ocr", - "structural_handle": null - }, - "risk": "irreversible", - "risk_explanation": "retained action context names a consequential state change", - "risk_review_required": false, - "safety_halt": false, - "safety_refusal_evidence": null, - "skipped": false, - "starting_state_settled": null, - "step_id": "step_010", - "submit_binding_verified": null, - "timings": "" - } - ], - "run_id_sha256": "", - "rung_counts": { - "geometry": 4, - "ocr": 4 - }, - "screenshots_may_leave_box": false, - "source_recording_sha256": null, - "started_at": "", - "success": true, - "surface_override": false, - "terminal_outcome": null, - "total_ms": "", - "transaction_billable": false, - "transaction_outcome": "COMPLETED_UNVERIFIED", - "transaction_platform_fault": false, - "visited_states": [], - "workflow_contract_sha256": "2d6f7fcad4dfd6506ba82ee3de7027b62f10f348c0dbd79df2dc924fa5e6a07e", - "workflow_name": "golden-triage" - }, - "trace": [ - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - }, - { - "args": [ - 214, - 195 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "nurse.demo" - ], - "call": "type_text" - }, - { - "args": [ - 214, - 264 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "mockmed-demo-pass" - ], - "call": "type_text" - }, - { - "args": [ - 120, - 324 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 777, - 186 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 113, - 159 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 85, - 214 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - 344, - 350 - ], - "call": "click", - "kwargs": { - "double": false - } - }, - { - "args": [ - "Golden triage booking three months" - ], - "call": "type_text" - }, - { - "call": "cancel_pending_structural_guards" - }, - { - "args": [ - 134, - 457 - ], - "call": "arm_guarded_coordinate" - }, - { - "call": "cancel_guarded_coordinate" - }, - { - "args": [ - 134, - 457 - ], - "call": "act_guarded_coordinate", - "kwargs": { - "double": false, - "expected_frame_sha256": "62ac72d7b812e699194ef0cb7cc5dca4c59687e48d7c95809050240c3f3ae2fb" - } - }, - { - "args": [ - null - ], - "call": "set_qualification_input_guard" - } - ] -} From 38813572feb642017bdb34e10590cecf76306db7 Mon Sep 17 00:00:00 2001 From: abrichr Date: Tue, 3 Nov 2026 14:36:51 -0500 Subject: [PATCH 11/17] ci(flow): TEMPORARY write the Linux golden baselines Reverted once the baselines from this run are committed. --- .github/workflows/packages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index b330035b16..710022b90d 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -642,6 +642,7 @@ jobs: # One process: the scenarios share one MockMed server per module. env: OPENADAPT_GOLDEN_OUT: runs/golden + OPENADAPT_GOLDEN_WRITE: "1" # TEMPORARY: Linux baselines; reverted before review run: | pytest -vv --durations=20 tests/golden_runs \ --basetemp=runs/ci-goldens --junitxml=runs/goldens-junit.xml From 16cec49d2ff1b573390580250604e19da49ead3b Mon Sep 17 00:00:00 2001 From: abrichr Date: Tue, 3 Nov 2026 15:47:04 -0500 Subject: [PATCH 12/17] test(flow): commit the Linux golden baselines from the merged tree Written by Packages run 41704998213 (workflow_dispatch, flow core critical, OPENADAPT_GOLDEN_WRITE=1, Playwright 1.61.0). In write mode each scenario ran twice and the two results were equal before the baseline was written. Copied unchanged from the flow-golden-runs artifact. --- .../bundles/mockmed-triage/manifest.json | 40 + .../mockmed-triage/param_proposals.json | 19 + .../bundles/mockmed-triage/sections.json | 148 + .../templates/layout_fingerprint.json | 590 ++++ .../mockmed-triage/templates/step_000.png | Bin 0 -> 271 bytes .../templates/step_000_expect.png | Bin 0 -> 7175 bytes .../templates/step_001_expect.png | Bin 0 -> 4901 bytes .../mockmed-triage/templates/step_002.png | Bin 0 -> 271 bytes .../templates/step_002_expect.png | Bin 0 -> 10580 bytes .../templates/step_003_expect.png | Bin 0 -> 3685 bytes .../mockmed-triage/templates/step_004.png | Bin 0 -> 2399 bytes .../templates/step_004_expect.png | Bin 0 -> 42618 bytes .../mockmed-triage/templates/step_005.png | Bin 0 -> 2493 bytes .../templates/step_005_expect.png | Bin 0 -> 21089 bytes .../mockmed-triage/templates/step_006.png | Bin 0 -> 3067 bytes .../templates/step_006_expect.png | Bin 0 -> 5047 bytes .../mockmed-triage/templates/step_007.png | Bin 0 -> 3529 bytes .../templates/step_007_expect.png | Bin 0 -> 4947 bytes .../mockmed-triage/templates/step_008.png | Bin 0 -> 1160 bytes .../templates/step_008_expect.png | Bin 0 -> 5496 bytes .../mockmed-triage/templates/step_010.png | Bin 0 -> 3101 bytes .../templates/step_010_expect.png | Bin 0 -> 3604 bytes .../bundles/mockmed-triage/workflow.json | 1408 +++++++++ .../bundles/mockmed-triage/workflow.py | 79 + .../baselines/mockmed_data_growth.json | 742 +++++ .../baselines/mockmed_lookalike_row.json | 735 +++++ .../baselines/mockmed_missing_row.json | 731 +++++ .../golden_runs/baselines/mockmed_modal.json | 1267 ++++++++ .../golden_runs/baselines/mockmed_pass.json | 1234 ++++++++ .../baselines/mockmed_pass_structural.json | 1655 ++++++++++ .../golden_runs/baselines/mockmed_rename.json | 1749 +++++++++++ .../golden_runs/baselines/mockmed_sort.json | 734 +++++ .../golden_runs/baselines/mockmed_theme.json | 2755 +++++++++++++++++ 33 files changed, 13886 insertions(+) create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_001_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_003_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_004.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_004_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010_expect.png create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json create mode 100644 packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_modal.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_pass.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_rename.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_sort.json create mode 100644 packages/flow/tests/golden_runs/baselines/mockmed_theme.json diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json new file mode 100644 index 0000000000..18b6819876 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json @@ -0,0 +1,40 @@ +{ + "schema_version": 2, + "content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "file_hashes": { + "templates/layout_fingerprint.json": "470ed40ea4b12499ce0e7f6a9e8bd4db8cbb716a44889cb3f8c06f058afd10b4", + "templates/step_000.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", + "templates/step_000_expect.png": "29e54a82c2f7df3554d2487d9bad748fc0abd86191416d39343c1eb866c486d1", + "templates/step_001_expect.png": "e2e203b8bbc4bf0a31aebd56a1303077243a3ff602708bbe9eae46d45460ebdf", + "templates/step_002.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", + "templates/step_002_expect.png": "68a0aa31d3b7fba1139c05d729f49252174481dfca5a8693cb5b6440f8976fe6", + "templates/step_003_expect.png": "3068277f51d8dfbfd1ba50b31afee93e76dcacb67b11d4610b6dcdf681597eed", + "templates/step_004.png": "d0082e004cf2a2c03668ca1c6630001eda69bdcf169d05d58839dcbddbc56773", + "templates/step_004_expect.png": "230b56796f24b36637d77ba395e6031bf39cbfab898da61c1c41f23f1b57e396", + "templates/step_005.png": "e38e9760b48c63a08e6618b2624c6796620ce58b5f7d7a2ff63f678aa25bb3e2", + "templates/step_005_expect.png": "76696ff4ec85753e45b5378638fa7c19f4f7fddb1cf35ee99cf6baee11844803", + "templates/step_006.png": "97568daf732ecb6109d858dd09cdcf78b031830c819b6f4b6a50ae60a72ada10", + "templates/step_006_expect.png": "d0e310e05830227867e94a9b288e6265fa28c375558d58555e79bfb002095134", + "templates/step_007.png": "7f6817a19ffe49b31a05a70a23f3fcdb2a71b93b3f4ec6a7b997126b4e0ff16c", + "templates/step_007_expect.png": "ac9ee10ba2354bca0db66fbf3bf93ca80b62a650d3f19e8b71dcc6038a4d057f", + "templates/step_008.png": "b6b06e1ed6155ed74899d0a42bf23df672bf930bfb6f830ab69e6d89ca6fedd3", + "templates/step_008_expect.png": "d1f13cae697465c2ec07310adc38d7780f7d7c0146257679b7c559716b992a31", + "templates/step_010.png": "31193461982dc5b438be9e459f1ce17f2b5dca4109c206428c7d8135bf60643a", + "templates/step_010_expect.png": "5fcb6891641b02953b9baeaa75581a3a9fa1db6c7bd39d432f1d4d06d04c8856" + }, + "provenance": { + "compiler_version": "2.5.0", + "source_recording_sha256": null, + "compiler_config_sha256": "43f5f0d9a4d87c9637138dc24dcf8a163094ab400b760cee8c2567a0760be695", + "created_at": "2026-11-03T20:44:16.736176+00:00", + "policy_name": null, + "certified": false, + "certification_status": null, + "certified_at": null, + "expires_at": null, + "certification_invalidated_at": null, + "certification_invalidation_reason": null, + "governed_authorization_template": null + }, + "encrypted": false +} \ No newline at end of file diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json new file mode 100644 index 0000000000..7f3956125d --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json @@ -0,0 +1,19 @@ +{ + "note": "Flagged field-label parameter proposals -- NOT applied. Run the confirm pass (openadapt-flow compile, interactive or --accept-params/--params-from) to turn a proposal into a parameter; unconfirmed proposals remain demonstrated constants.", + "proposals": [ + { + "step_id": "step_001", + "name": "username", + "field_label": "Username", + "masked_example": "nu******mo", + "secret": false + }, + { + "step_id": "step_003", + "name": "password", + "field_label": "Password", + "masked_example": null, + "secret": true + } + ] +} \ No newline at end of file diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json new file mode 100644 index 0000000000..2afb8cf440 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/sections.json @@ -0,0 +1,148 @@ +{ + "schema": "openadapt.flow.sections/v1", + "note": "Display metadata: named groups of steps for program maps. Execution and the outcome classifier ignore this file, and it is outside the content digest and the workflow contract hash.", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681", + "sections": [ + { + "id": "fields-step_000", + "title": "Sign in to MockMed", + "title_source": "ui", + "kind": "fields", + "steps": [ + "step_000", + "step_001", + "step_002", + "step_003" + ], + "fields": [ + "username", + "password" + ], + "params": [] + }, + { + "id": "fields-step_004", + "title": "Triage", + "title_source": "ui", + "kind": "fields", + "steps": [ + "step_004", + "step_005", + "step_006", + "step_007", + "step_008", + "step_009" + ], + "fields": [ + "note" + ], + "params": [ + "note" + ] + }, + { + "id": "save-step_010", + "title": "Save Encounter", + "title_source": "ui", + "kind": "save", + "steps": [ + "step_010" + ], + "fields": [], + "params": [] + } + ], + "compiled": [ + { + "id": "fields-step_000", + "title": "Sign in to MockMed", + "title_source": "ui", + "kind": "fields", + "steps": [ + "step_000", + "step_001", + "step_002", + "step_003" + ], + "fields": [ + "username", + "password" + ], + "params": [] + }, + { + "id": "fields-step_004", + "title": "Triage", + "title_source": "ui", + "kind": "fields", + "steps": [ + "step_004", + "step_005", + "step_006", + "step_007", + "step_008", + "step_009" + ], + "fields": [ + "note" + ], + "params": [ + "note" + ] + }, + { + "id": "save-step_010", + "title": "Save Encounter", + "title_source": "ui", + "kind": "save", + "steps": [ + "step_010" + ], + "fields": [], + "params": [] + } + ], + "edits": [], + "context": { + "step_000": { + "container": "Sign in to MockMed", + "kind": "heading", + "header": false + }, + "step_002": { + "container": "Sign in to MockMed", + "kind": "heading", + "header": false + }, + "step_004": { + "container": "Sign in to MockMed", + "kind": "heading", + "header": false + }, + "step_005": { + "container": "Referral Tasks", + "kind": "heading", + "header": false + }, + "step_006": { + "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", + "kind": "landmark", + "header": false + }, + "step_007": { + "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", + "kind": "landmark", + "header": false + }, + "step_008": { + "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", + "kind": "landmark", + "header": false + }, + "step_010": { + "container": "Jane Sample \u2014 MRN P1 \u2014 DOB 1980-01-01", + "kind": "landmark", + "header": false + } + } +} diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json new file mode 100644 index 0000000000..115d1436cd --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json @@ -0,0 +1,590 @@ +{ + "scale_landmarks": { + "salt": "7a077291c53bda94f33ca2e3b315114f", + "steps": { + "step_000": [ + [ + "e3d983e7fc5836f8", + 71.0, + 25.0, + 98, + 24 + ], + [ + "143aea793ca1b724", + 234.5, + 26.5, + 201, + 21 + ], + [ + "766f9f299134262d", + 138.0, + 89.5, + 228, + 27 + ], + [ + "0debe35deb646066", + 85.5, + 166.0, + 79, + 22 + ], + [ + "ea11a4d3f6b77b05", + 85.0, + 234.5, + 74, + 17 + ], + [ + "1f0539785a15287d", + 120.0, + 324.0, + 58, + 24 + ] + ], + "step_002": [ + [ + "e3d983e7fc5836f8", + 71.0, + 25.0, + 98, + 24 + ], + [ + "143aea793ca1b724", + 234.5, + 26.5, + 201, + 21 + ], + [ + "766f9f299134262d", + 137.0, + 89.5, + 228, + 27 + ], + [ + "0debe35deb646066", + 85.5, + 166.5, + 79, + 23 + ], + [ + "a6e619aaf7d34da6", + 100.5, + 195.0, + 91, + 20 + ], + [ + "ea11a4d3f6b77b05", + 85.0, + 234.5, + 74, + 17 + ], + [ + "1f0539785a15287d", + 120.0, + 324.0, + 58, + 24 + ] + ], + "step_004": [ + [ + "e3d983e7fc5836f8", + 71.0, + 25.0, + 98, + 24 + ], + [ + "143aea793ca1b724", + 234.5, + 26.5, + 201, + 21 + ], + [ + "766f9f299134262d", + 137.5, + 89.5, + 229, + 27 + ], + [ + "0debe35deb646066", + 85.5, + 166.0, + 79, + 22 + ], + [ + "a6e619aaf7d34da6", + 100.5, + 195.0, + 91, + 20 + ], + [ + "ea11a4d3f6b77b05", + 85.0, + 235.0, + 76, + 20 + ], + [ + "1f0539785a15287d", + 120.0, + 324.0, + 58, + 24 + ] + ], + "step_005": [ + [ + "e3d983e7fc5836f8", + 71.0, + 25.0, + 100, + 24 + ], + [ + "143aea793ca1b724", + 235.0, + 26.5, + 202, + 21 + ], + [ + "dcf957e2da669f41", + 106.5, + 89.0, + 167, + 26 + ], + [ + "219b945008e4da3c", + 63.0, + 139.5, + 58, + 21 + ], + [ + "818472b7c93e41d1", + 304.0, + 139.0, + 60, + 20 + ], + [ + "9961aaa734026652", + 608.0, + 139.0, + 60, + 24 + ], + [ + "430666fe7b7b5e7f", + 754.5, + 138.5, + 55, + 23 + ], + [ + "662a68b0dfc4d2b9", + 81.0, + 188.0, + 94, + 20 + ], + [ + "57d14927f9c936f3", + 336.0, + 188.0, + 126, + 22 + ], + [ + "60060442afa7a3b0", + 598.5, + 188.0, + 39, + 22 + ], + [ + "845b8fbcc3d74cf5", + 83.5, + 244.5, + 99, + 23 + ], + [ + "46cdf82f793f8573", + 345.0, + 244.5, + 142, + 25 + ], + [ + "9838587cc68f76e7", + 609.0, + 243.5, + 62, + 23 + ], + [ + "687f07df62a4b1a8", + 88.5, + 302.0, + 107, + 20 + ], + [ + "72a6468ccdab4bf6", + 346.5, + 302.0, + 143, + 20 + ] + ], + "step_006": [ + [ + "e3d983e7fc5836f8", + 71.0, + 25.0, + 98, + 24 + ], + [ + "143aea793ca1b724", + 235.0, + 27.5, + 198, + 17 + ], + [ + "1b820ccec646f5a6", + 209.5, + 98.0, + 347, + 20 + ], + [ + "a07aad8ad74ae005", + 114.5, + 159.0, + 111, + 20 + ], + [ + "71ea41e971617fc3", + 80.0, + 211.0, + 112, + 20 + ], + [ + "971e299bc5449bb7", + 90.0, + 241.5, + 138, + 23 + ] + ], + "step_007": [ + [ + "e3d983e7fc5836f8", + 71.0, + 25.0, + 98, + 24 + ], + [ + "143aea793ca1b724", + 234.5, + 26.5, + 197, + 17 + ], + [ + "1b820ccec646f5a6", + 209.5, + 98.0, + 347, + 20 + ], + [ + "a07aad8ad74ae005", + 112.0, + 143.0, + 180, + 26 + ], + [ + "60d63bbb7871c33e", + 80.5, + 182.5, + 119, + 23 + ], + [ + "f7383fe8264ee3bb", + 85.5, + 214.0, + 53, + 24 + ], + [ + "937358dac479ba79", + 206.5, + 213.5, + 61, + 21 + ], + [ + "b2f246f8abe221b6", + 41.0, + 270.0, + 40, + 18 + ], + [ + "06e49998dce63eef", + 134.0, + 456.5, + 118, + 23 + ] + ], + "step_008": [ + [ + "e3d983e7fc5836f8", + 71.0, + 25.0, + 98, + 24 + ], + [ + "143aea793ca1b724", + 235.0, + 26.5, + 198, + 17 + ], + [ + "1b820ccec646f5a6", + 209.5, + 98.0, + 347, + 20 + ], + [ + "a07aad8ad74ae005", + 111.0, + 142.0, + 178, + 26 + ], + [ + "60d63bbb7871c33e", + 80.5, + 183.0, + 119, + 22 + ], + [ + "f7383fe8264ee3bb", + 85.5, + 214.0, + 53, + 24 + ], + [ + "937358dac479ba79", + 206.5, + 213.5, + 61, + 21 + ], + [ + "b2f246f8abe221b6", + 41.0, + 270.0, + 40, + 18 + ], + [ + "06e49998dce63eef", + 134.0, + 456.5, + 118, + 23 + ] + ], + "step_010": [ + [ + "e3d983e7fc5836f8", + 71.0, + 25.0, + 98, + 24 + ], + [ + "143aea793ca1b724", + 234.5, + 26.5, + 197, + 17 + ], + [ + "1b820ccec646f5a6", + 209.5, + 98.0, + 347, + 20 + ], + [ + "a07aad8ad74ae005", + 111.0, + 143.0, + 178, + 26 + ], + [ + "60d63bbb7871c33e", + 80.5, + 183.0, + 119, + 22 + ], + [ + "f7383fe8264ee3bb", + 85.5, + 214.0, + 53, + 24 + ], + [ + "937358dac479ba79", + 206.5, + 213.5, + 61, + 21 + ], + [ + "b2f246f8abe221b6", + 40.5, + 269.5, + 41, + 21 + ], + [ + "06e49998dce63eef", + 134.0, + 456.5, + 118, + 23 + ] + ] + } + }, + "schema": "openadapt.layout-fingerprints/v1", + "steps": { + "step_000": { + "char_width": 9.770833333333332, + "landmarks": {}, + "lines": 6, + "profile_sha256": null, + "text_height": 23.0, + "viewport": [ + 1280, + 800 + ] + }, + "step_002": { + "char_width": 9.666666666666666, + "landmarks": {}, + "lines": 7, + "profile_sha256": null, + "text_height": 23, + "viewport": [ + 1280, + 800 + ] + }, + "step_004": { + "char_width": 9.666666666666666, + "landmarks": {}, + "lines": 7, + "profile_sha256": null, + "text_height": 22, + "viewport": [ + 1280, + 800 + ] + }, + "step_005": { + "char_width": 9.727272727272727, + "landmarks": {}, + "lines": 19, + "profile_sha256": null, + "text_height": 22, + "viewport": [ + 1280, + 800 + ] + }, + "step_006": { + "char_width": 10.225, + "landmarks": {}, + "lines": 6, + "profile_sha256": null, + "text_height": 20.0, + "viewport": [ + 1280, + 800 + ] + }, + "step_007": { + "char_width": 9.153846153846153, + "landmarks": {}, + "lines": 9, + "profile_sha256": null, + "text_height": 23, + "viewport": [ + 1280, + 800 + ] + }, + "step_008": { + "char_width": 9.153846153846153, + "landmarks": {}, + "lines": 9, + "profile_sha256": null, + "text_height": 22, + "viewport": [ + 1280, + 800 + ] + }, + "step_010": { + "char_width": 9.115384615384615, + "landmarks": {}, + "lines": 10, + "profile_sha256": null, + "text_height": 21.5, + "viewport": [ + 1280, + 800 + ] + } + } +} diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000.png new file mode 100644 index 0000000000000000000000000000000000000000..fb7b324bfdac2e246cfa97953ca2e594f21a31dd GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3xL>xg9%6qy?p%xNL}-EaSW+oe0z{luz^8ZL~$r4Tlj0`egf`5 bGWu`f*}awPE9}LAK4kE8^>bP0l+XkKDh_-5 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..37f0bfd628af9a5b834851df73fc78fac584e7b9 GIT binary patch literal 7175 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 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002.png new file mode 100644 index 0000000000000000000000000000000000000000..fb7b324bfdac2e246cfa97953ca2e594f21a31dd GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3xL>xg9%6qy?p%xNL}-EaSW+oe0z{luz^8ZL~$r4Tlj0`egf`5 bGWu`f*}awPE9}LAK4kE8^>bP0l+XkKDh_-5 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..da0b19b6832b21d8f5dc55983a727856d61b1814 GIT binary patch literal 10580 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 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_003_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_003_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..8acfaf171c4fba5a981676d87b1f416ace274253 GIT binary patch literal 3685 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 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005.png new file mode 100644 index 0000000000000000000000000000000000000000..28e8ce90b67cd55e27e72a4cde8defe092038878 GIT binary patch literal 2493 zcmeAS@N?(olHy`uVBq!ia0vp^3xL>xg9%6qy?p(Hfq}Ed)5S5Qg7NLa{2bxuvg{w; z3qP7rP`pUR;T1!;bM2|Jq6stRxn_N03N@H09%#N~NnK&mRS%Vb;~9UO4A<7jm8?EC zMSO~es|)w4TQ4TuxgZ)C7f{OamGz~|{7vFz{1;}j&rIt&ysrmK->P! zX8m^uzCS+N!Lg3>@S{~c@jnw?SgyAu7KXO1|6`!klznK!4z0uCbrOOHO%o$xrasiR z@9B6j%Rpz{DWF+yE(N|4V&SPkOO%y%sPS~KHmZ5rE+`ly+;%ina^I)Jc#VC`KI7ck zxi;mGAFsYP{d?{jJLy+TWA{(sfBQEx_^_3Y7|fyqqq(zR*L@8ttIJI-jdfihwc5Wh zv##==WAfKSH|^hNWks;RH-tI$19wQa`y%57`^-C*QHlE2J;{${q5 zXk*rzyrWAiGgUvoTp5438gAF3BPE(5t^6B|HH{Y@9JIo&nxR|XM6BO>^;3awG4H3H ztcAAbzdXxw+5+yq@j2y_@j(t2A9FMeW4T-dl|mg~KKShau7AzU9rJeAB)=>*bqV7DRg;hfQYK#np)d^rT&S#@(Z*g4}9NHP+jrF z(sRzv$}g`@ecL;6dzsG5@NlbJucETF#pJ~F;%B|tpOikGF=We@*0^_T?%&(M=Iw1h z*|`2^g4s-Vt?Om-A#q3Ebe@!2`&K&D}eqlK1wS%|G|8{>M^{kkYbK?a|%O{qI*jKIZkgPxtWo z>kn`3y{=~$b7RZHqkDTFo~*82zIpq`ZM(xOpQg{)VORYs$&B;m_Vc-w+l<8J=g6F1 z9D>6Uy=$X|_LiF8H-4PV-CYr~;afya_VF)wYnQ)gw^ly9Tl@Gu!~TEOnSv{BMbz8u zt9-rn_HR8M+iHi(jcVTyJ$Mo!$B=z`Gm-J@1jNvE8-}9qz2z{YST#`P{!-{;O_-vC*E*6&ZM?Yfi^HxCp^ez`imN8e{Fs6ZFBHRrhVL;w-{0B4y(j-F%OS^<^l6`_X78?^s=ReG*bfY1dEEV9Slrq#F~3y870E(V z`0V$W*0=boZ2q-%{pQo62YU~`yUTk!@WOeYIUahtixzFwHrlhBjh}nEe(F6x@t=A> z3$j1{c^RF5Cn7Vm{?ppMuk-rvS{ELT%UN}~EcZ_E-Pm_ z^KZ*r6(_IpteE>zRoMP1!j^}&Yenr=IxKtibNKYi>but%Q1W|AwDh;_=3Csenof6{ zU*`YP9W3uF7Pu3b*+_|pk3T}Tl)1K9hyCjBpFdY|im>%$BVnmM$6+;)x|h#%r$8G! z(X~iP?$^9iFlydFlTjKW<7oSz=A#gQAZ3^yOgjw^;$8Ix)I1GcM|6P1URG zNQM8Om+$A#{~f+f>qg7fTtoZMtGE5yFZTdRfzR`2yZ-&yxOdaKO}n-!1@vBBzQbg{ z&HsQXb%7 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..179ca92c9c12e3e263db3c48a1bf7b74f14579d7 GIT binary patch literal 21089 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 KRLN5#|NjG-mb(c6 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006.png new file mode 100644 index 0000000000000000000000000000000000000000..6dc20e56a692c647b94cec7d7900845460258330 GIT binary patch literal 3067 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 Cx!AS< literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..12a3279b4040daf9d03b6bc94d01e75b457f0027 GIT binary patch literal 5047 zcmeHLdr(tn7QbM-h^)n3T(BaIRt2pfDhjNTWECwa7PPhUk_6p584O84BoH16A@BEIe01CC%+5|{|JXnH=iWPa&i&5$ z{m%K$_d7S|SfJm^6>C=j0I>3~|G_T-z_JZ`<}J5`uGSH_asaR+9zMAL#6^p_$D|tc zM3hj*S@s&$iQMuy>XGvXs{HD6ip29TEv_H$jS7j++jGacsdvD4uD#o(b?0r%dp4wp z>`nev$Md>}Z{Ea`S(x<*_?qA;|LCU$prYpPkr_+e#`>-eIO|^KA2L_9kzvSG|A&7~ z;8qY?Nrrtcbvh#WH~IdZ9rIVeDnn&V2g1#D+eo4-a*o}6>p&t>C-b7}A4?zl5yyiC zDcW)eYrur@U|Stp_<>bviu5MVbLc4sZL9?eUW=wBj4QF)qG27&9rOq0)2PXaV^0Ny!*LH}hV40DLYvPJ4dEwaMl#6pOjCxE7y4Kt}fduiq7k)9Yi}RA1 zU~2#ts9IL)NajW`up*u}1w?cr)d4Wj2Ae}|+N^F$~(|CpiP^XACM+M=h zW;m{HiG#7yQbxZ?H&;^k!pj-n!cRL&iWap85w#|AhnQLKCZMVNT}*n}1ZB^R=g32) z3eC_)RDTEnpU0Nkz6bkkWWK?+G-Q?C5@CcP~nI)1b9)kLGV;49I0v4 zk0jQ4WE0I}^>jtIElF}0kL@@LRnNh0?RQ%WKa#v`)Iaa5;0Q@w!N}xb{VQafJky64 z52L*g0XsRn5uWSAIm6F}>Bwou`+N2phvsTa)awv(HXJrgd!P!x;lz``J>%a}3hFeV z7s=2+K7(i{37zECO0eD#C(H5Gjr#BzLXEQpa9IYG>AjG>ZHX+2uSbdM6U}Q~Pnxhp zPYy(@d)@g&kq2D04n@P65qc2cB2Z08>xB!$#*rXz}>?Q zbM)vGRi>4cP87lQ(k+rp38Cg}N_8qu-vSa&LU5s7@-w)gRjTm8v|}!#MczscxipZU zC)9JhNDZkoCV~pDJ_pXRglNV@lOCz04}OaxOnZc<5@gz2Fx^NOz7Bu3F`7r{5zQ{M z6%dSl=sCu?2u}?|;RhJt%*NmvuCO>_Pnwc883(1h8`^?DrTW}Ue5871qGGy?U@A)6 zr%?1grFcmC+H3Xdxl%&RWT6jdsw#p!%S%<(1e$U98Ieymr$f&6Q*Ey?zKH2*(dUEx zCP`NsDRQuyEDX;u^p~?R8UtM@xR|AwZt}|~pc4h2X0^K=0IVrUMr^rWewEfTi`dedg_Hv?>z!}+>IhK zok$Xz&?L!~GF0*I^fM>7LQ$OdPM;mNVI$2i69pRp;O~MPehh8b5b?sZuV-$43+3cm z5B-~q<5olyH{c|6fPJrC*d`erC(*^->d!WhXB_+e7hWek9iRjT@Kvz|TbEufF|kw= zOIu;7DJ=EErBh+)d|Z+R|3M)6pNoo$+C}lN;?Z4qmB&EZ`>y!fQxP--Z*_BZJ?d-+ z)?xIGKfcvr6^@^k*Z{z$rUwspP>w1X|2&Vjr+m2!Qhd)Z_{OFzYCL;;d*>TDCNCVX z=upMY#gTqD|Jd*;09c=ym6g>Sb8qPFvWI_d(DDm|pZoo#{(JJyefv9m&~P2D(Uf7^ zW#ExsZ`kUt{%8&=$)p`Z$v=WZQc(Blp26s<`-yd7m2V<~G^|f~Bb=qjohR8h};-!~ZJtijHouT;D0$|@>6w?kU zM6=QZZ6p?hqdx?&@m*P##I;02*L>K;i981?amvdio+v_X0y>AGpCZh8u@yt$M7$I? zD72d&NR88Gq1#fGe8yh)_XZq{+1+%dc@i8uV1Yc3G)1*(nkUUOR9kBxDRr>|`mo3c zr!iMAr*!q&`H@{Q_Q2>YG|!$c77`G~EKU!(YUg;9F z&Zn_06u8{9I2A?_^_hQ4ar~gvF_7w=9+TVz0P#JG2{)*gZ4-Ge_x38?m#p~lRU8C0 ze-Wy7&gx{}`Bh06?@OuaGoMy{Z_zG>Dg!utDDYt2fygWW0_HJ* AV*mgE literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007.png new file mode 100644 index 0000000000000000000000000000000000000000..fc08d3799dcb8a847440eae2ba0fb180072364f9 GIT binary patch literal 3529 zcmcInXHZk?77ZmpD55}60i_5gbi9BN5V-XAsG*AV4pNn-0--lSrA4HJNDvZ`4$?z! zf`*$bO?s80p_llG_s;Xandh6iGw=O4=ggdazP;DC_Fn6o6Q{4M&OpmX3jhEZG&NKV z&z^Z_*RM3>XLqL6^@FqbPc>B(jRMIw+I{rlF{gm-trW?v0}#KR*^@T4&e8VIeWl8w+erpbv-`82Rj;FI%L=tLi*TMyqIqpwx$A96`x$)!R9ij+PvBV2q8eX9XPrSo+q zO_-zI`qcsBC>eZVs&%%<=&QnCPiN~JPj+1HK8up(@=b;6PO+59x_JqhMRnj&`PlgW zq&{dvoS2t22+;maoG%_O1zb-W&#ZmCLU70EyO)a8fYEAUY%YdwG`T8{HO9q3iCT$R z$h7MQ&XJZoaO-4K>7IgshwlqtU_hp1QR4JLL9O`i|~ z24^ILr1S02>x#3Sg-7&<;HeNF&jcM&a63FCAno>6cvi|y%gHD$NA`yNwSTN{A|oi& zin?c+x2pZueu)C$Mz~cM5Bq-SN$`93QvQ<|3!?Sff$bun#i|<%arOKQ+c5Ulw}$y! zAl?nw#8;CC5|6Mui?5Zk*A28hoau7n$^Gig;o~cb!jf+DkT>7GTR%4*jn z$_+|<4tNDh(K2wF_J@{l>2yv})qSr0;7O0)Qg1$(PZ%G@In%V%>!T&;ft@gQKOksy zo1X1TZY^!&{_8!)4pxfM#%ot|BG$wgOz$6eH3;8qHlieuo33dO$VT`^$fK(oeH<*a zn_ck&scd2blIL;*i)-LWe#*S)bNmAD^txHi%N$c46xl+#hGDM-HDaTkM^+B1ae*wv z!@tGHZVA4Wb{C`m#nHq0oP$clx39L?%ZyE5UtwIvQRCmtq2@ko9r=Drh`0nvtj3|MFH4e3S!FNk~a91a3=>{_c4i_W11|;u#-iy#)rY{RMDDaY^ONMEW=> zR*%GDs!0)1;iEWW$D2E|-tf5SOJN7XhwmlYPX&>f$B}l6(I)drf!hJ5g7k7^8bnt| z^EET%STMnWhF2DS)A9u#g_C~7ls0CP%^x|_jG2mh6=F2LAhD?Sq}Dw?i9W)`Lsv0G z@uME_%8Rcbtj?oNn=?2=mp_*frlAcbV@=@y!cpjjrU?wc!Y>@;v1yrQOB;e@i0`w* zslr!2RqyDrgAMaUO0hJztaTi#mPUk1pMAUm9DOjBdH5w@I7enHF*)=0(8T<#1!9Dr zZt`F%jW$>hKrCmFT(+otvP$cRQRlD877i4k#Z5WsxE4y)_A24LlA>o&6L&qEyr(Xb zBTzdh{YNjtCAa~UoadyIGUH0I`^99GbAG_Lf}adqcp_o#qVh6+ouBJvE;Gdzd71E9 zN}3(3%A&Iye=aH@1_gZ~F;M#pN~ZL&c%8tO(S?Zl#>@V#BK7=*%gm z`Soc;Mc1#@o3Sy=dH-fJ)}kvf|~E@83%bDX|c3`X@)A=jzd9{DA7~%<s@u&&}NuxbF z+r)lAHt+9ZH|xWN?chH|S=hZQkoFn}kWOjL-339@C~l%2_^sdJmGNi6y-Qx*#@ z zgo=w}N>>RE16f@>EX3gN@Gp5nK$0hdQ7aR?U<9m+IrrhY-NF8T>j}Oj1T1{fm0y&0 zHWYMP_qInWJGIeWhxdeC`HVGPu}NJfH?vDs%$w6q=S(KJ@LD{G{YO7`MQ88dF_npL zcVl0;tw}jp*sIv}?3lejB+`l)ypN1S8;km#IOjqvmV{XI0W6wV*Llm6pPUX>Msmgm z@LOTuKv|YLa*RU#B5@u`7RWuTu1VdG zA7J9KF;M&oGMlTa=hAV{811b(D-Hb}JDt1b1 z^b-y>jyD#m*=skoVgpxJ;Z3s9#6Wv^KGd7AcLPuH$pKoWX;LX?OMA4{D-Nf6T>8o|*S#0^{n zaIJ8Ta&WMw4+v-SOhWFY)mh0njteD_A)YQ{pMa4$3r4-dAIaav$hqMwt)+UsH7Nm< z>Ru&`(@g1J?gJqgSQ#Uo%w{OD8@&0^Q8#2~H;2}3Y8ZUcyyQ#3K1J1R(fm7SI|zq~ z&o{o1*Q*^g7gFNh>2k*QSTaiy4;%qG=IK_oL+Q+;#>+C-1IG^i-3kCp`gNYr=_}eI zNQ+9RcVi7~HfTb&WGQePhh$_sx3~B5uD?l$9!&xjNkHMV{>l2-j_29l`%8Wm<5UeM zOk{-cg}ee!p`hH!tP7xfPThWz!8vy`s?1n+?hHJ{$2c{cSU->DQ^|+FRFl%+ul?vt zJegJuFrB1YE;sFIhqsSftVPt#^)IFi)gI3D^z_WI7krSCaW{o@6oipv_gz>OVos3B z=AbKOwThTDm9{1>7z)L%Jq?j^R_Vz4LH4w30KW)b=3|Rb2O@)@}PSwKs6G86&Bq1odDdXfhg)5|{Y$>86V^X_(O#)-D!N1lUSLC>HZScbEPGR=Nyd3_K5w5FuWt}8LgJ?7z6oz{v+ z%4)PZU^jWiZsT6z%mR`g6qb43QeB<2r93kvFpJ&63#ge9$?BQu>rx`wSer+%CFhT( zpxn21z4Ju3I`0op_+r_}gg`$!l)$mr@Jd=f-l^$9p4bgrr@8vY)<*7<8rv!fs&uL! zf>9N{KM{;>wC~sl-vT4eTD`ECR1GtMAH@P^8UDq6*v0ApaUdmpTu_m$2$IbM2+F*A+3kF<*U!Pb*K;* z(@Dtc?vq^pXD8iux(F$uuqBBmi^iWVSPumx!=P!+>?Im!zi0qWRb3T~l1=zO0s0@V A(*OVf literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..d3d7c922eac10e981bbbd21e18407fa712cab672 GIT binary patch literal 4947 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 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e264aeea554c5d1ffd71f2d1a5886358978853 GIT binary patch literal 1160 zcmeAS@N?(olHy`uVBq!ia0y~yV0-{%AK+jDlEJy^4h#$|{+=$5Ar*{o4;prDOP6H3 z@cNw(m!Z;1ovm^gqc((Y_`Pxa#<{FFb~3#VVdlE&B=!A+=w>$dH%H3jQ@c4RRhHo>sF(%B=h1XVyCs!XbuG2~{(q|}|M&N?{Gadn_5Z$3 zkFODX@Ob9(=k7ON)&Ku_J-`0z;r)L;iZj~H11Vn%QvUC*{r`{G@3a1>c=qzApjdT% zb?u%St`8s2T>h-A^X=caUll(^AZA3o`TO?k$4{CEjvM=*@859a_wCn@p9VMdr_Y-w npSbb+_Up$_FK3WH|DSPzddSmh3J!t55{ALk)z4*}Q$iB}IyV?? literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..260aa58b78c19a36dda9327254c4f6c8b52e5c3b GIT binary patch literal 5496 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 literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010_expect.png b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010_expect.png new file mode 100644 index 0000000000000000000000000000000000000000..6d75e4363c91ce5ac26798864e115bc6191981db GIT binary patch literal 3604 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 HwF>zc8@$@$ literal 0 HcmV?d00001 diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json new file mode 100644 index 0000000000..12c1f05d56 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json @@ -0,0 +1,1408 @@ +{ + "schema_version": 2, + "name": "golden-triage", + "recording_id": "638e9b610dcf480db27a9a18ed716dd2", + "contains_phi": false, + "phi_scrubbed": false, + "encrypted": false, + "created_at": "2026-11-03T20:44:16.734881+00:00", + "viewport": [ + 1280, + 800 + ], + "params": { + "note": "Golden triage booking three months" + }, + "param_specs": { + "note": { + "name": "note", + "type": "string", + "example": "Golden triage booking three months", + "required": true, + "choices": [] + } + }, + "secret_params": [], + "steps": [ + { + "id": "step_000", + "intent": "click recorded visual target", + "action": "click", + "anchor": { + "template": "templates/step_000.png", + "structural": { + "selector": "#username", + "frame_path": null, + "role": "textbox", + "name": "Username", + "automation_id": null, + "window_name": null + }, + "region": [ + 134, + 163, + 160, + 64 + ], + "click_point": [ + 214, + 195 + ], + "ocr_text": null, + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "band_len": 0, + "tokens": [], + "concats": [], + "structured": "9eec048367ca69ba", + "signal_hashes": { + "structured|exact|": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|casefold": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|collapse_whitespace": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc,casefold": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,collapse_whitespace": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc,strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|casefold,collapse_whitespace": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|casefold,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|collapse_whitespace,strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "structured_row": false + }, + "identifier_crop": null, + "identifier_region": null, + "form_identity": null, + "landmarks": [ + { + "relation": "above", + "ocr_text": "Sign in to MockMed", + "distance_px": 130, + "dx_px": 76, + "dy_px": 106 + }, + { + "relation": "left_of", + "ocr_text": "Username", + "distance_px": 132, + "dx_px": 129, + "dy_px": 29 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 17, + 145, + 394, + 126 + ], + "phash": "e060e8e01f0f2f9f", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_000_expect.png" + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_001", + "intent": "type 'nurse.demo'", + "action": "type", + "anchor": null, + "text": "nurse.demo", + "param": null, + "secret": false, + "field_label": "Username", + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 27, + 156, + 147, + 76 + ], + "phash": "c3c969c2d23cbc36", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_001_expect.png" + }, + { + "kind": "text_present", + "text": "nurse.demo", + "region": null, + "phash": null, + "phash_tolerance": 8, + "timeout_s": 5.0, + "template": null + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": null, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": null, + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_002", + "intent": "click recorded visual target", + "action": "click", + "anchor": { + "template": "templates/step_002.png", + "structural": { + "selector": "#password", + "frame_path": null, + "role": "textbox", + "name": "Password", + "automation_id": null, + "window_name": null + }, + "region": [ + 134, + 232, + 160, + 64 + ], + "click_point": [ + 214, + 264 + ], + "ocr_text": null, + "context_text": null, + "structured_identity": null, + "identity_template": null, + "identifier_crop": null, + "identifier_region": null, + "form_identity": null, + "landmarks": [ + { + "relation": "left_of", + "ocr_text": "Sign In", + "distance_px": 112, + "dx_px": 94, + "dy_px": -60 + }, + { + "relation": "left_of", + "ocr_text": "Password", + "distance_px": 132, + "dx_px": 129, + "dy_px": 30 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 17, + 145, + 394, + 169 + ], + "phash": "e0e01e3c7c1f2fe0", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_002_expect.png" + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": false, + "identity_unarmed_reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "identifier_crop_missing_reason": "identity is not armed on this step (see identity_unarmed_reason) — there is no identity evidence to crop", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_003", + "intent": "type 'mockmed-demo-pass'", + "action": "type", + "anchor": null, + "text": "mockmed-demo-pass", + "param": null, + "secret": false, + "field_label": "Password", + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 26, + 229, + 159, + 69 + ], + "phash": "c2c1cdc9dec1a8b6", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_003_expect.png" + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": null, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": null, + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_004", + "intent": "click 'Sign In'", + "action": "click", + "anchor": { + "template": "templates/step_004.png", + "structural": { + "selector": "#signin", + "frame_path": null, + "role": "button", + "name": "Sign In", + "automation_id": null, + "window_name": null + }, + "region": [ + 39, + 292, + 160, + 64 + ], + "click_point": [ + 119, + 324 + ], + "ocr_text": "Sign In", + "context_text": null, + "structured_identity": null, + "identity_template": null, + "identifier_crop": null, + "identifier_region": null, + "form_identity": null, + "landmarks": [ + { + "relation": "above", + "ocr_text": "Password", + "distance_px": 95, + "dx_px": 34, + "dy_px": 89 + }, + { + "relation": "above", + "ocr_text": "nurse.demo", + "distance_px": 130, + "dx_px": 19, + "dy_px": 129 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 87, + 968, + 314 + ], + "phash": "f7f038e0e868ec68", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_004_expect.png" + }, + { + "kind": "text_present", + "text": "Sam Specimen", + "region": null, + "phash": null, + "phash_tolerance": 8, + "timeout_s": 5.0, + "template": null + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": false, + "identity_unarmed_reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "identifier_crop_missing_reason": "identity is not armed on this step (see identity_unarmed_reason) — there is no identity evidence to crop", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_005", + "intent": "click 'Open'", + "action": "click", + "anchor": { + "template": "templates/step_005.png", + "structural": { + "selector": "#open-p1", + "frame_path": null, + "role": "button", + "name": "Open", + "automation_id": null, + "window_name": null + }, + "region": [ + 695, + 154, + 160, + 64 + ], + "click_point": [ + 775, + 186 + ], + "ocr_text": "Open", + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "band_len": 30, + "tokens": [ + { + "c": "c3f03513b97ac375", + "r": "c3f03513b97ac375", + "n": 4, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + }, + { + "c": "9ee71e296b9f12b0", + "r": "9ee71e296b9f12b0", + "n": 6, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + }, + { + "c": "474017e2662aec63", + "r": "474017e2662aec63", + "n": 4, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + }, + { + "c": "e2c9d9dd2be64c93", + "r": "dbeb4aa0ff7e457c", + "n": 4, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + }, + { + "c": "e85574407f1c63d2", + "r": "e85574407f1c63d2", + "n": 8, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + }, + { + "c": "f0d7c32ddfe55ff9", + "r": "291356604e133bf5", + "n": 4, + "alpha": true, + "name": true, + "digit": false, + "idsh": false, + "glyph": false, + "gen": false + } + ], + "concats": [ + { + "i": 0, + "size": 2, + "c": "c8f3afe51e54101a", + "r": "c8f3afe51e54101a", + "digit": false, + "name": true, + "n": 10 + }, + { + "i": 0, + "size": 3, + "c": "889b7b67936cc714", + "r": "889b7b67936cc714", + "digit": false, + "name": true, + "n": 14 + }, + { + "i": 0, + "size": 4, + "c": "ec3cdd51930bbe48", + "r": "012c14f98d142b52", + "digit": false, + "name": true, + "n": 18 + }, + { + "i": 1, + "size": 2, + "c": "f568044c153a789d", + "r": "f568044c153a789d", + "digit": false, + "name": true, + "n": 10 + }, + { + "i": 1, + "size": 3, + "c": "39c3c847d0c00e09", + "r": "1df7bb2273b3df1e", + "digit": false, + "name": true, + "n": 14 + }, + { + "i": 1, + "size": 4, + "c": "70fa34d51b5f7d24", + "r": "3f8bfbc445a153ce", + "digit": false, + "name": true, + "n": 22 + }, + { + "i": 2, + "size": 2, + "c": "a489e05dc4e788cd", + "r": "952951299539c02a", + "digit": false, + "name": true, + "n": 8 + }, + { + "i": 2, + "size": 3, + "c": "a17b2d971bc7336e", + "r": "b6031ab669bb21d4", + "digit": false, + "name": true, + "n": 16 + }, + { + "i": 2, + "size": 4, + "c": "554e958767924e9f", + "r": "8cb792749b8c4a26", + "digit": false, + "name": true, + "n": 20 + }, + { + "i": 3, + "size": 2, + "c": "fb3767c825cca1e4", + "r": "f8736267c1e29056", + "digit": false, + "name": true, + "n": 12 + }, + { + "i": 3, + "size": 3, + "c": "85136127f9b54bf1", + "r": "9cb6424db9c1775c", + "digit": false, + "name": true, + "n": 16 + }, + { + "i": 4, + "size": 2, + "c": "08d9cd2536340e25", + "r": "3c24468959fd3d49", + "digit": false, + "name": true, + "n": 12 + } + ], + "structured": "f54030eb9739c951", + "signal_hashes": { + "structured|exact|": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|casefold": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|collapse_whitespace": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,casefold": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,collapse_whitespace": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|casefold,collapse_whitespace": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|collapse_whitespace,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "captured_context|exact|": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|casefold": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|collapse_whitespace": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,casefold": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,collapse_whitespace": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|casefold,collapse_whitespace": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|collapse_whitespace,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "structured_row": true + }, + "identifier_crop": null, + "identifier_region": null, + "form_identity": null, + "landmarks": [ + { + "relation": "above", + "ocr_text": "Action", + "distance_px": 52, + "dx_px": 21, + "dy_px": 48 + }, + { + "relation": "below", + "ocr_text": "Open", + "distance_px": 58, + "dx_px": -2, + "dy_px": -58 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 43, + 968, + 318 + ], + "phash": "fae083ffbc08183c", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_005_expect.png" + }, + { + "kind": "text_present", + "text": "Jane Sample — MRN P1 — DOB 1980-01-01", + "region": null, + "phash": null, + "phash_tolerance": 8, + "timeout_s": 5.0, + "template": null + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_006", + "intent": "click 'New Encounter'", + "action": "click", + "anchor": { + "template": "templates/step_006.png", + "structural": { + "selector": "#new-encounter", + "frame_path": null, + "role": "button", + "name": "New Encounter", + "automation_id": null, + "window_name": null + }, + "region": [ + 34, + 127, + 160, + 64 + ], + "click_point": [ + 114, + 159 + ], + "ocr_text": "New Encounter", + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "band_len": 0, + "tokens": [], + "concats": [], + "structured": "503fb2093ed582b9", + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "structured_row": true + }, + "identifier_crop": null, + "identifier_region": null, + "form_identity": null, + "landmarks": [ + { + "relation": "below", + "ocr_text": "Encounters", + "distance_px": 62, + "dx_px": 34, + "dy_px": -52 + }, + { + "relation": "below", + "ocr_text": "No encounters yet.", + "distance_px": 85, + "dx_px": 24, + "dy_px": -82 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 232, + 696, + 219 + ], + "phash": "ff7fc16a622262c0", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_006_expect.png" + }, + { + "kind": "text_present", + "text": "Encounter Type", + "region": null, + "phash": null, + "phash_tolerance": 8, + "timeout_s": 5.0, + "template": null + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_007", + "intent": "click 'Triage'", + "action": "click", + "anchor": { + "template": "templates/step_007.png", + "structural": { + "selector": "#type-triage", + "frame_path": null, + "role": "button", + "name": "Triage", + "automation_id": null, + "window_name": null + }, + "region": [ + 5, + 182, + 160, + 64 + ], + "click_point": [ + 85, + 214 + ], + "ocr_text": "Triage", + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "band_len": 0, + "tokens": [], + "concats": [], + "structured": "503fb2093ed582b9", + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "structured_row": true + }, + "identifier_crop": null, + "identifier_region": null, + "form_identity": null, + "landmarks": [ + { + "relation": "below", + "ocr_text": "Note", + "distance_px": 71, + "dx_px": 44, + "dy_px": -56 + }, + { + "relation": "above", + "ocr_text": "New Encounter", + "distance_px": 76, + "dx_px": -27, + "dy_px": 71 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 163, + 177, + 102 + ], + "phash": "88c2f2297d2da739", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_007_expect.png" + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_008", + "intent": "click recorded visual target", + "action": "click", + "anchor": { + "template": "templates/step_008.png", + "structural": { + "selector": "#note", + "frame_path": null, + "role": "textbox", + "name": "Note", + "automation_id": null, + "window_name": null + }, + "region": [ + 104, + 254, + 480, + 192 + ], + "click_point": [ + 344, + 350 + ], + "ocr_text": null, + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "band_len": 0, + "tokens": [], + "concats": [], + "structured": "503fb2093ed582b9", + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "structured_row": true + }, + "identifier_crop": null, + "identifier_region": null, + "form_identity": null, + "landmarks": [ + { + "relation": "left_of", + "ocr_text": "Consult", + "distance_px": 194, + "dx_px": 138, + "dy_px": 137 + }, + { + "relation": "above", + "ocr_text": "Jane Sample — MRN P1 — DOB 1980-01-01", + "distance_px": 286, + "dx_px": 135, + "dy_px": 252 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 249, + 696, + 202 + ], + "phash": "ff3fd53e7a002a00", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_008_expect.png" + } + ], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_009", + "intent": "type ", + "action": "type", + "anchor": null, + "text": "Golden triage booking three months", + "param": "note", + "secret": false, + "field_label": "Note", + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [], + "effects": [], + "api_binding": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": null, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": null, + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + }, + { + "id": "step_010", + "intent": "click 'Save Encounter'", + "action": "click", + "anchor": { + "template": "templates/step_010.png", + "structural": { + "selector": "#save-encounter", + "frame_path": null, + "role": "button", + "name": "Save Encounter", + "automation_id": null, + "window_name": null + }, + "region": [ + 54, + 425, + 160, + 64 + ], + "click_point": [ + 134, + 457 + ], + "ocr_text": "Save Encounter", + "context_text": null, + "structured_identity": null, + "identity_template": { + "schema_version": 1, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "band_len": 0, + "tokens": [], + "concats": [], + "structured": "503fb2093ed582b9", + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb" + }, + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "structured_row": true + }, + "identifier_crop": null, + "identifier_region": null, + "form_identity": null, + "landmarks": [ + { + "relation": "above", + "ocr_text": "Note", + "distance_px": 210, + "dx_px": 94, + "dy_px": 188 + }, + { + "relation": "above", + "ocr_text": "Consult", + "distance_px": 254, + "dx_px": -72, + "dy_px": 244 + } + ], + "search_pad": 80 + }, + "text": null, + "param": null, + "secret": false, + "field_label": null, + "selection_commit_key": null, + "selection_region": null, + "key": null, + "modifiers": [], + "drag_end_anchor": null, + "scroll_dx": null, + "scroll_dy": null, + "expect": [ + { + "kind": "region_stable", + "text": null, + "region": [ + 0, + 229, + 696, + 56 + ], + "phash": "f80781f8871e9e0f", + "phash_tolerance": 16, + "timeout_s": 5.0, + "template": "templates/step_010_expect.png" + }, + { + "kind": "text_present", + "text": "Encounters", + "region": null, + "phash": null, + "phash_tolerance": 8, + "timeout_s": 5.0, + "template": null + } + ], + "effects": [], + "api_binding": null, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "wait_until": null, + "guard": null, + "read": null, + "read_gate": null, + "surface": null, + "opens": [], + "surface_origin": null, + "closes_surface": false, + "dialog": null, + "timeout_s": 10.0, + "identity_armed": true, + "identity_unarmed_reason": null, + "identifier_crop_missing_reason": "structured identity (DOM/UIA/AX) owns this step's identity; no identifier pixels persisted at rest — mark the identifier field/region at record time (--identifier) to also arm the pixel tier for remote-display replays", + "hover": null, + "submit_binding": null, + "submit_binding_unbound_reason": null + } + ], + "interstitials": [], + "program": null, + "subflows": {}, + "data_sources": {}, + "manifest": { + "schema_version": 2, + "content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "file_hashes": { + "templates/layout_fingerprint.json": "470ed40ea4b12499ce0e7f6a9e8bd4db8cbb716a44889cb3f8c06f058afd10b4", + "templates/step_000.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", + "templates/step_000_expect.png": "29e54a82c2f7df3554d2487d9bad748fc0abd86191416d39343c1eb866c486d1", + "templates/step_001_expect.png": "e2e203b8bbc4bf0a31aebd56a1303077243a3ff602708bbe9eae46d45460ebdf", + "templates/step_002.png": "b355da2f01f2311032460231a15b025d5ebad7dd49cee26b422bc1b08a8c2022", + "templates/step_002_expect.png": "68a0aa31d3b7fba1139c05d729f49252174481dfca5a8693cb5b6440f8976fe6", + "templates/step_003_expect.png": "3068277f51d8dfbfd1ba50b31afee93e76dcacb67b11d4610b6dcdf681597eed", + "templates/step_004.png": "d0082e004cf2a2c03668ca1c6630001eda69bdcf169d05d58839dcbddbc56773", + "templates/step_004_expect.png": "230b56796f24b36637d77ba395e6031bf39cbfab898da61c1c41f23f1b57e396", + "templates/step_005.png": "e38e9760b48c63a08e6618b2624c6796620ce58b5f7d7a2ff63f678aa25bb3e2", + "templates/step_005_expect.png": "76696ff4ec85753e45b5378638fa7c19f4f7fddb1cf35ee99cf6baee11844803", + "templates/step_006.png": "97568daf732ecb6109d858dd09cdcf78b031830c819b6f4b6a50ae60a72ada10", + "templates/step_006_expect.png": "d0e310e05830227867e94a9b288e6265fa28c375558d58555e79bfb002095134", + "templates/step_007.png": "7f6817a19ffe49b31a05a70a23f3fcdb2a71b93b3f4ec6a7b997126b4e0ff16c", + "templates/step_007_expect.png": "ac9ee10ba2354bca0db66fbf3bf93ca80b62a650d3f19e8b71dcc6038a4d057f", + "templates/step_008.png": "b6b06e1ed6155ed74899d0a42bf23df672bf930bfb6f830ab69e6d89ca6fedd3", + "templates/step_008_expect.png": "d1f13cae697465c2ec07310adc38d7780f7d7c0146257679b7c559716b992a31", + "templates/step_010.png": "31193461982dc5b438be9e459f1ce17f2b5dca4109c206428c7d8135bf60643a", + "templates/step_010_expect.png": "5fcb6891641b02953b9baeaa75581a3a9fa1db6c7bd39d432f1d4d06d04c8856" + }, + "provenance": { + "compiler_version": "2.5.0", + "source_recording_sha256": null, + "compiler_config_sha256": "43f5f0d9a4d87c9637138dc24dcf8a163094ab400b760cee8c2567a0760be695", + "created_at": "2026-11-03T20:44:16.736176+00:00", + "policy_name": null, + "certified": false, + "certification_status": null, + "certified_at": null, + "expires_at": null, + "certification_invalidated_at": null, + "certification_invalidation_reason": null, + "governed_authorization_template": null + }, + "encrypted": false + } +} \ No newline at end of file diff --git a/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py new file mode 100644 index 0000000000..541ccbc326 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/bundles/mockmed-triage/workflow.py @@ -0,0 +1,79 @@ +"""Generated by openadapt-flow. Human-readable rendering of +workflow 'golden-triage' — for code review only; the replayer +executes workflow.json, not this file.""" + +WORKFLOW_NAME = 'golden-triage' +RECORDING_ID = '638e9b610dcf480db27a9a18ed716dd2' +PARAMS = {'note': 'Golden triage booking three months'} # param -> example/default value + + +def run(flow, params=PARAMS): + # step_000: click recorded visual target [reversible] + # landmark: 'Sign in to MockMed' (above, 130px) + # landmark: 'Username' (left_of, 132px) + # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_000.png', click_point=(214, 195), region=(134, 163, 160, 64)) + # expect region_stable region=(17, 145, 394, 126) phash='e060e8e01f0f2f9f' (tol 16) + + # step_001: type 'nurse.demo' [reversible] + flow.type_text('nurse.demo') + # expect region_stable region=(27, 156, 147, 76) phash='c3c969c2d23cbc36' (tol 16) + # expect text_present text='nurse.demo' + + # step_002: click recorded visual target [reversible] + # landmark: 'Sign In' (left_of, 112px) + # landmark: 'Password' (left_of, 132px) + flow.click(template='templates/step_002.png', click_point=(214, 264), region=(134, 232, 160, 64)) + # expect region_stable region=(17, 145, 394, 169) phash='e0e01e3c7c1f2fe0' (tol 16) + + # step_003: type 'mockmed-demo-pass' [reversible] + flow.type_text('mockmed-demo-pass') + # expect region_stable region=(26, 229, 159, 69) phash='c2c1cdc9dec1a8b6' (tol 16) + + # step_004: click 'Sign In' [reversible] + # landmark: 'Password' (above, 95px) + # landmark: 'nurse.demo' (above, 130px) + flow.click(template='templates/step_004.png', click_point=(119, 324), region=(39, 292, 160, 64), ocr_text='Sign In') + # expect region_stable region=(0, 87, 968, 314) phash='f7f038e0e868ec68' (tol 16) + # expect text_present text='Sam Specimen' + + # step_005: click 'Open' [reversible] + # landmark: 'Action' (above, 52px) + # landmark: 'Open' (below, 58px) + # identity: armed via PHI-free salted-hash template (6 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_005.png', click_point=(775, 186), region=(695, 154, 160, 64), ocr_text='Open') + # expect region_stable region=(0, 43, 968, 318) phash='fae083ffbc08183c' (tol 16) + # expect text_present text='Jane Sample — MRN P1 — DOB 1980-01-01' + + # step_006: click 'New Encounter' [reversible] + # landmark: 'Encounters' (below, 62px) + # landmark: 'No encounters yet.' (below, 85px) + # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_006.png', click_point=(114, 159), region=(34, 127, 160, 64), ocr_text='New Encounter') + # expect region_stable region=(0, 232, 696, 219) phash='ff7fc16a622262c0' (tol 16) + # expect text_present text='Encounter Type' + + # step_007: click 'Triage' [reversible] + # landmark: 'Note' (below, 71px) + # landmark: 'New Encounter' (above, 76px) + # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_007.png', click_point=(85, 214), region=(5, 182, 160, 64), ocr_text='Triage') + # expect region_stable region=(0, 163, 177, 102) phash='88c2f2297d2da739' (tol 16) + + # step_008: click recorded visual target [reversible] + # landmark: 'Consult' (left_of, 194px) + # landmark: 'Jane Sample — MRN P1 — DOB 1980-01-01' (above, 286px) + # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_008.png', click_point=(344, 350), region=(104, 254, 480, 192)) + # expect region_stable region=(0, 249, 696, 202) phash='ff3fd53e7a002a00' (tol 16) + + # step_009: type [reversible] + flow.type_text(params['note']) + + # step_010: click 'Save Encounter' [irreversible] + # landmark: 'Note' (above, 210px) + # landmark: 'Consult' (above, 254px) + # identity: armed via PHI-free salted-hash template (0 band tokens, structured); no patient identifier stored + flow.click(template='templates/step_010.png', click_point=(134, 457), region=(54, 425, 160, 64), ocr_text='Save Encounter') + # expect region_stable region=(0, 229, 696, 56) phash='f80781f8871e9e0f' (tol 16) + # expect text_present text='Encounters' diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json b/packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json new file mode 100644 index 0000000000..1e868e0456 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_data_growth.json @@ -0,0 +1,742 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#tasks" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14", + "steps/step_005_before.png": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14" + }, + "environment": { + "platform": "linux", + "playwright": "1.61.0" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [], + "effect_journal": [], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'" + ], + "intent": "click 'Open'", + "observed_texts": [ + "MockMed", + "Clinical demo — all data is fake", + "Referral Tasks", + "Patient", + "Reason", + "Priority", + "Action", + "Pat Placeholder", + "Orthopedics intake", + "Low", + "Open", + "Robin Redacted", + "Neurology referral", + "Medium", + "Casey Control", + "Endocrine consult", + "Drew Dataset", + "Physio assessment", + "Jane Sample", + "Knee pain referral", + "High", + "Alex Testcase", + "Cardiology follow-up", + "Sam Specimen", + "Dermatology consult" + ], + "outcome": "halt", + "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 0.99) but its surrounding text does not match the recorded target's — expected '', observed 'Pat PlaceholderOrthopedics intakeLow' (coverage 0.00) — refusing to act; run aborted", + "state_id": "step_005" + }, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 9 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "fe84784a4fa6d1ffb51e672dd03890517fa2089273e848416e2c1c829092c5d7", + "result_index": 0, + "step_contract_sha256": "6bf682e8ab410f6db36beda60015bbe7818ef5558883b410f7740ffce7835ce0", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "01eca1f4ef4e7fdd9113ef35fb8c0e7da90895c785f5e93eef3d93f258d094bf", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "3d418dafc0decd2b2d7fa006422549e78b3f81e676df6acd0f3f475c41ed5dc0", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "bbd16e8fc0fc2c7310b70f92de6f58c0a7ab16adaa9cc46bfdfa1e9b63e9b34f", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "d8a865a76a78eb8c1f8c0a932f3cfb7c723715112f9ede5233b348fbf67d0358", + "result_index": 2, + "step_contract_sha256": "b1ac8e5ec1f94709f643ef6e4047dbbabe53d50ef6aee5b2982c89b1f9c33f90", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "25724a3f67da3f2bde2a47543b69af26905a62a4aea96814f038bc62c6089466", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "4581ab5cdf052d6bfbe08c733e0173c54c824297f177a7393233b07abd5f86af", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f02a7170072e316742505d17220ade035dd366ace896fa809d03a5be2eff626d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8868781da939c959072ff2bcf7488c30d6b07cadd8a4de97ca6c6791ead5ee8d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "64880fb29d2abf85340167a0746edfc7fdcf6f9d9259ce6f9a9a18465cb81b3e", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "901f38d1688f6eadc1d2d1edcab6f10ca76f034600448ecb925bdb21aa8a178d", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 11 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "census_status": "not_a_row", + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": false, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 0.99) but its surrounding text does not match the recorded target's — expected '', observed 'Pat PlaceholderOrthopedics intakeLow' (coverage 0.00) — refusing to act; run aborted", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 0.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Pat PlaceholderOrthopedics intakeLow", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "mismatch" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": { + "confidence": 0.995, + "elapsed_ms": "", + "point": [ + 777, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": { + "code": "identity_conflict", + "detector_input_sha256": "762ffa2d83e3d242d13c8c3ed09b99b618583ca178683f239618386c65167e14", + "stage": "identity_verification" + }, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 3 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "REJECTED_POLICY", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "call": "cancel_guarded_keyboard" + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json b/packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json new file mode 100644 index 0000000000..33a1ce5f67 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_lookalike_row.json @@ -0,0 +1,735 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#tasks" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1", + "steps/step_005_before.png": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1" + }, + "environment": { + "platform": "linux", + "playwright": "1.61.0" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [], + "effect_journal": [], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'" + ], + "intent": "click 'Open'", + "observed_texts": [ + "MockMed", + "Clinical demo — all data is fake", + "Referral Tasks", + "Patient", + "Reason", + "Priority", + "Action", + "Taylor Duplicate", + "Knee pain referral", + "High", + "Open", + "Jane Sample", + "Alex Testcase", + "Cardiology follow-up", + "Medium", + "Sam Specimen", + "Dermatology consult", + "Low" + ], + "outcome": "halt", + "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Taylor DuplicateKnee pain referralHigh' (coverage 0.00) — refusing to act; run aborted", + "state_id": "step_005" + }, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 9 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "fe84784a4fa6d1ffb51e672dd03890517fa2089273e848416e2c1c829092c5d7", + "result_index": 0, + "step_contract_sha256": "6bf682e8ab410f6db36beda60015bbe7818ef5558883b410f7740ffce7835ce0", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "01eca1f4ef4e7fdd9113ef35fb8c0e7da90895c785f5e93eef3d93f258d094bf", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "3d418dafc0decd2b2d7fa006422549e78b3f81e676df6acd0f3f475c41ed5dc0", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "bbd16e8fc0fc2c7310b70f92de6f58c0a7ab16adaa9cc46bfdfa1e9b63e9b34f", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "d8a865a76a78eb8c1f8c0a932f3cfb7c723715112f9ede5233b348fbf67d0358", + "result_index": 2, + "step_contract_sha256": "b1ac8e5ec1f94709f643ef6e4047dbbabe53d50ef6aee5b2982c89b1f9c33f90", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "25724a3f67da3f2bde2a47543b69af26905a62a4aea96814f038bc62c6089466", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "4581ab5cdf052d6bfbe08c733e0173c54c824297f177a7393233b07abd5f86af", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f02a7170072e316742505d17220ade035dd366ace896fa809d03a5be2eff626d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8868781da939c959072ff2bcf7488c30d6b07cadd8a4de97ca6c6791ead5ee8d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "64880fb29d2abf85340167a0746edfc7fdcf6f9d9259ce6f9a9a18465cb81b3e", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "901f38d1688f6eadc1d2d1edcab6f10ca76f034600448ecb925bdb21aa8a178d", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 11 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "census_status": "not_a_row", + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": false, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Taylor DuplicateKnee pain referralHigh' (coverage 0.00) — refusing to act; run aborted", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 0.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Taylor DuplicateKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "mismatch" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": { + "confidence": 0.999, + "elapsed_ms": "", + "point": [ + 777, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": { + "code": "identity_conflict", + "detector_input_sha256": "1eb7df905bce4b6e43cbd6b28a14ff72a2f4f6ab5ec7a6921c50dd2a2fdff8d1", + "stage": "identity_verification" + }, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 3 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "REJECTED_POLICY", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "call": "cancel_guarded_keyboard" + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json b/packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json new file mode 100644 index 0000000000..e497e2332f --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_missing_row.json @@ -0,0 +1,731 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#tasks" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10", + "steps/step_005_before.png": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10" + }, + "environment": { + "platform": "linux", + "playwright": "1.61.0" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [], + "effect_journal": [], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'" + ], + "intent": "click 'Open'", + "observed_texts": [ + "MockMed", + "Clinical demo — all data is fake", + "Referral Tasks", + "Patient", + "Reason", + "Priority", + "Action", + "Alex Testcase", + "Cardiology follow-up", + "Medium", + "Open", + "Sam Specimen", + "Dermatology consult", + "Low" + ], + "outcome": "halt", + "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", + "state_id": "step_005" + }, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 9 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "fe84784a4fa6d1ffb51e672dd03890517fa2089273e848416e2c1c829092c5d7", + "result_index": 0, + "step_contract_sha256": "6bf682e8ab410f6db36beda60015bbe7818ef5558883b410f7740ffce7835ce0", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "01eca1f4ef4e7fdd9113ef35fb8c0e7da90895c785f5e93eef3d93f258d094bf", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "3d418dafc0decd2b2d7fa006422549e78b3f81e676df6acd0f3f475c41ed5dc0", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "bbd16e8fc0fc2c7310b70f92de6f58c0a7ab16adaa9cc46bfdfa1e9b63e9b34f", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "d8a865a76a78eb8c1f8c0a932f3cfb7c723715112f9ede5233b348fbf67d0358", + "result_index": 2, + "step_contract_sha256": "b1ac8e5ec1f94709f643ef6e4047dbbabe53d50ef6aee5b2982c89b1f9c33f90", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "25724a3f67da3f2bde2a47543b69af26905a62a4aea96814f038bc62c6089466", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "4581ab5cdf052d6bfbe08c733e0173c54c824297f177a7393233b07abd5f86af", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f02a7170072e316742505d17220ade035dd366ace896fa809d03a5be2eff626d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8868781da939c959072ff2bcf7488c30d6b07cadd8a4de97ca6c6791ead5ee8d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "64880fb29d2abf85340167a0746edfc7fdcf6f9d9259ce6f9a9a18465cb81b3e", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "901f38d1688f6eadc1d2d1edcab6f10ca76f034600448ecb925bdb21aa8a178d", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 11 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "census_status": "not_a_row", + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": false, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 0.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Alex TestcaseCardiology follow-upMedium", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "mismatch" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 775, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": { + "code": "identity_conflict", + "detector_input_sha256": "473c1bd6d325229b795e1569e1c155f6d78d6288f23c5e0f9110739f9ee28b10", + "stage": "identity_verification" + }, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 3 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "REJECTED_POLICY", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "call": "cancel_guarded_keyboard" + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_modal.json b/packages/flow/tests/golden_runs/baselines/mockmed_modal.json new file mode 100644 index 0000000000..47670fbd25 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_modal.json @@ -0,0 +1,1267 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#encounter" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_005_before.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_006_after.png": "ad792e883a6da0330c97a456acd21f054e264131365b70b336f66c71c17dc972", + "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_007_after.png": "5a220b78381249c1280c32a8fe1dafd896b68a32c019677f7c9014f07dee66c2", + "steps/step_007_before.png": "ad792e883a6da0330c97a456acd21f054e264131365b70b336f66c71c17dc972", + "steps/step_008_after.png": "60e0a3d48905c71fbf650de8a62c6c86d69bf48eef8d5a3469aea064c9127616", + "steps/step_008_before.png": "5a220b78381249c1280c32a8fe1dafd896b68a32c019677f7c9014f07dee66c2", + "steps/step_009_after.png": "3dd75cc7bda6990a869d201700fef88a58f8cb6a967089e8476fff3d8c5fac89", + "steps/step_009_before.png": "60e0a3d48905c71fbf650de8a62c6c86d69bf48eef8d5a3469aea064c9127616", + "steps/step_010_after.png": "e2b19443d9e3aab0ba865578116a73947ba8a973d0458cca144c4239ec88fc7f", + "steps/step_010_before.png": "bbb8dfdecf30b0454ba805fc4566d211ac6e7b958e76f75ee00df1c8dc11a304" + }, + "environment": { + "platform": "linux", + "playwright": "1.61.0" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [ + { + "attempt_state": "delivered", + "effects": [], + "intent": "click 'Save Encounter'", + "may_need_undo": true, + "position": 11, + "status": "unknown", + "step_id": "step_010", + "undo_id": null + } + ], + "effect_journal": [ + { + "approved_unverified": false, + "attempt_state": "delivered", + "collateral_reconciliation_actions": 0, + "consequential": true, + "effect_verified": null, + "intended_effect_contract_hashes": [], + "intent": "click 'Save Encounter'", + "observed_at": null, + "observed_effect": "unknown", + "step_id": "step_010", + "verification_performed": false + } + ], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'", + "click 'Open'", + "click 'New Encounter'", + "click 'Triage'", + "click recorded visual target", + "type " + ], + "intent": "click 'Save Encounter'", + "observed_texts": [ + "MockMed", + "Clinical demo —- all data is fake", + "Jane Sample — MRN P1 — DOB 1980-01-01", + "New Encounter", + "Encounter Type", + "Triage", + "Consult", + "Note", + "Golden triage booking three months", + "Survey", + "Before saving, please rate your experience with", + "MockMed today.", + "Maybe later", + "Save Encounter" + ], + "outcome": "halt", + "reason": "Postconditions failed for step 'step_010' (click 'Save Encounter'): expected screen state not reached (semantic drift) — failed: region_stable region=(0, 229, 696, 56) — run aborted", + "state_id": "step_010" + }, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 16 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "fe84784a4fa6d1ffb51e672dd03890517fa2089273e848416e2c1c829092c5d7", + "result_index": 0, + "step_contract_sha256": "6bf682e8ab410f6db36beda60015bbe7818ef5558883b410f7740ffce7835ce0", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "01eca1f4ef4e7fdd9113ef35fb8c0e7da90895c785f5e93eef3d93f258d094bf", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "3d418dafc0decd2b2d7fa006422549e78b3f81e676df6acd0f3f475c41ed5dc0", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "bbd16e8fc0fc2c7310b70f92de6f58c0a7ab16adaa9cc46bfdfa1e9b63e9b34f", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "d8a865a76a78eb8c1f8c0a932f3cfb7c723715112f9ede5233b348fbf67d0358", + "result_index": 2, + "step_contract_sha256": "b1ac8e5ec1f94709f643ef6e4047dbbabe53d50ef6aee5b2982c89b1f9c33f90", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "25724a3f67da3f2bde2a47543b69af26905a62a4aea96814f038bc62c6089466", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "4581ab5cdf052d6bfbe08c733e0173c54c824297f177a7393233b07abd5f86af", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f02a7170072e316742505d17220ade035dd366ace896fa809d03a5be2eff626d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8868781da939c959072ff2bcf7488c30d6b07cadd8a4de97ca6c6791ead5ee8d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "64880fb29d2abf85340167a0746edfc7fdcf6f9d9259ce6f9a9a18465cb81b3e", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "901f38d1688f6eadc1d2d1edcab6f10ca76f034600448ecb925bdb21aa8a178d", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9e4263786e21aa0c2fbe6dbf8a9089b945c32199378d84cb53bd22cdf482d77c", + "result_index": 6, + "step_contract_sha256": "def1b78b00fc5538c91dd1ca76314e56a3054a8a919d28ca1010316059f173cc", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "9cd6efbb38a50616744e8d18d79928f9e64c59364646187f080a988f240d71b0", + "result_index": 6, + "step_contract_sha256": "def1b78b00fc5538c91dd1ca76314e56a3054a8a919d28ca1010316059f173cc", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "84710d18a9ad16229b276fcf71aa353821975d88e81be9efbcfb6b9d2faf552d", + "result_index": 7, + "step_contract_sha256": "5891fe63e3239ab1dd6ed30d206db52aa15605ec0d0df066492bf331663d5159", + "step_index": 7, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9df52ef8794b53be5eb524141445a398cfdbd2ab5eff586841dca1920d829bbe", + "result_index": 8, + "step_contract_sha256": "45ac4465db8e002d12457461189123a0f2d259951305680f3e64910bd9f428e4", + "step_index": 8, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "8e411b185cf3f7bca6cfbc58a7a049634d67b58898d546f45fa0499fb7d8fa6c", + "result_index": 9, + "step_contract_sha256": "6d7e1ac270c2a9bc0f3b2b6fac5b64fe9aa1faf4d7621853a6dc451c484a35b7", + "step_index": 9, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "008639c630d00a1c2c18d0ced1b25c63c0b2abd4f5f75fc18f93964aa2c29514", + "result_index": 10, + "step_contract_sha256": "d3a274759255792ce110fcedbe1c10fb007d29184b4c1c6eba64ddd992990a25", + "step_index": 10, + "verdict": "refuted", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "4d0a2f29cae281f657d4d820c474cc7f718ec8331040d5517e3c80357966af1b", + "result_index": 10, + "step_contract_sha256": "d3a274759255792ce110fcedbe1c10fb007d29184b4c1c6eba64ddd992990a25", + "step_index": 10, + "verdict": "refuted", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "census_status": "not_a_row", + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane SampleKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 775, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_006_after.png", + "api_fallback": null, + "before_png": "steps/step_006_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'New Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 114, + 159 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_006", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_007_after.png", + "api_fallback": null, + "before_png": "steps/step_007_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Triage'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 85, + 214 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_007", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_008_after.png", + "api_fallback": null, + "before_png": "steps/step_008_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 344, + 350 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_008", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_009_after.png", + "api_fallback": null, + "before_png": "steps/step_009_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type ", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_009", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "guarded_coordinate", + "after_png": "steps/step_010_after.png", + "api_fallback": null, + "before_png": "steps/step_010_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "guarded_coordinate_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Postconditions failed for step 'step_010' (click 'Save Encounter'): expected screen state not reached (semantic drift) — failed: region_stable region=(0, 229, 696, 56) — run aborted", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Save Encounter'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": false, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 134, + 457 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_010", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 7 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "RECONCILIATION_REQUIRED", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 775, + 186 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 114, + 159 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 85, + 214 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 344, + 350 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "Golden triage booking three months" + ], + "call": "type_text" + }, + { + "call": "cancel_pending_structural_guards" + }, + { + "args": [ + 134, + 457 + ], + "call": "arm_guarded_coordinate" + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "args": [ + 134, + 457 + ], + "call": "act_guarded_coordinate", + "kwargs": { + "double": false, + "expected_frame_sha256": "bbb8dfdecf30b0454ba805fc4566d211ac6e7b958e76f75ee00df1c8dc11a304" + } + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_pass.json b/packages/flow/tests/golden_runs/baselines/mockmed_pass.json new file mode 100644 index 0000000000..9280ae27c0 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_pass.json @@ -0,0 +1,1234 @@ +{ + "app_state": { + "banner": "Encounter saved — Golden triage booking three months", + "enc_item": "Triage — Golden triage booking three months", + "hash": "#patient/p1" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_005_before.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_006_after.png": "ad792e883a6da0330c97a456acd21f054e264131365b70b336f66c71c17dc972", + "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_007_after.png": "5a220b78381249c1280c32a8fe1dafd896b68a32c019677f7c9014f07dee66c2", + "steps/step_007_before.png": "ad792e883a6da0330c97a456acd21f054e264131365b70b336f66c71c17dc972", + "steps/step_008_after.png": "60e0a3d48905c71fbf650de8a62c6c86d69bf48eef8d5a3469aea064c9127616", + "steps/step_008_before.png": "5a220b78381249c1280c32a8fe1dafd896b68a32c019677f7c9014f07dee66c2", + "steps/step_009_after.png": "3dd75cc7bda6990a869d201700fef88a58f8cb6a967089e8476fff3d8c5fac89", + "steps/step_009_before.png": "60e0a3d48905c71fbf650de8a62c6c86d69bf48eef8d5a3469aea064c9127616", + "steps/step_010_after.png": "b67a417320935e61795d3fc117b99c301045cfb1cc9cfb1f51515d4ecc36e5b9", + "steps/step_010_before.png": "bbb8dfdecf30b0454ba805fc4566d211ac6e7b958e76f75ee00df1c8dc11a304" + }, + "environment": { + "platform": "linux", + "playwright": "1.61.0" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [ + { + "attempt_state": "delivered", + "effects": [], + "intent": "click 'Save Encounter'", + "may_need_undo": true, + "position": 11, + "status": "unknown", + "step_id": "step_010", + "undo_id": null + } + ], + "effect_journal": [ + { + "approved_unverified": false, + "attempt_state": "delivered", + "collateral_reconciliation_actions": 0, + "consequential": true, + "effect_verified": null, + "intended_effect_contract_hashes": [], + "intent": "click 'Save Encounter'", + "observed_at": null, + "observed_effect": "unknown", + "step_id": "step_010", + "verification_performed": false + } + ], + "est_model_cost_usd": 0.0, + "execution_completed": true, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "COMPLETED_UNVERIFIED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": null, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": true, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "COMPLETED_UNVERIFIED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "fe84784a4fa6d1ffb51e672dd03890517fa2089273e848416e2c1c829092c5d7", + "result_index": 0, + "step_contract_sha256": "6bf682e8ab410f6db36beda60015bbe7818ef5558883b410f7740ffce7835ce0", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "01eca1f4ef4e7fdd9113ef35fb8c0e7da90895c785f5e93eef3d93f258d094bf", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "3d418dafc0decd2b2d7fa006422549e78b3f81e676df6acd0f3f475c41ed5dc0", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "bbd16e8fc0fc2c7310b70f92de6f58c0a7ab16adaa9cc46bfdfa1e9b63e9b34f", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "d8a865a76a78eb8c1f8c0a932f3cfb7c723715112f9ede5233b348fbf67d0358", + "result_index": 2, + "step_contract_sha256": "b1ac8e5ec1f94709f643ef6e4047dbbabe53d50ef6aee5b2982c89b1f9c33f90", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "25724a3f67da3f2bde2a47543b69af26905a62a4aea96814f038bc62c6089466", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "4581ab5cdf052d6bfbe08c733e0173c54c824297f177a7393233b07abd5f86af", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f02a7170072e316742505d17220ade035dd366ace896fa809d03a5be2eff626d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8868781da939c959072ff2bcf7488c30d6b07cadd8a4de97ca6c6791ead5ee8d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "64880fb29d2abf85340167a0746edfc7fdcf6f9d9259ce6f9a9a18465cb81b3e", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "901f38d1688f6eadc1d2d1edcab6f10ca76f034600448ecb925bdb21aa8a178d", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9e4263786e21aa0c2fbe6dbf8a9089b945c32199378d84cb53bd22cdf482d77c", + "result_index": 6, + "step_contract_sha256": "def1b78b00fc5538c91dd1ca76314e56a3054a8a919d28ca1010316059f173cc", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "9cd6efbb38a50616744e8d18d79928f9e64c59364646187f080a988f240d71b0", + "result_index": 6, + "step_contract_sha256": "def1b78b00fc5538c91dd1ca76314e56a3054a8a919d28ca1010316059f173cc", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "84710d18a9ad16229b276fcf71aa353821975d88e81be9efbcfb6b9d2faf552d", + "result_index": 7, + "step_contract_sha256": "5891fe63e3239ab1dd6ed30d206db52aa15605ec0d0df066492bf331663d5159", + "step_index": 7, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9df52ef8794b53be5eb524141445a398cfdbd2ab5eff586841dca1920d829bbe", + "result_index": 8, + "step_contract_sha256": "45ac4465db8e002d12457461189123a0f2d259951305680f3e64910bd9f428e4", + "step_index": 8, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "8e411b185cf3f7bca6cfbc58a7a049634d67b58898d546f45fa0499fb7d8fa6c", + "result_index": 9, + "step_contract_sha256": "6d7e1ac270c2a9bc0f3b2b6fac5b64fe9aa1faf4d7621853a6dc451c484a35b7", + "step_index": 9, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "008639c630d00a1c2c18d0ced1b25c63c0b2abd4f5f75fc18f93964aa2c29514", + "result_index": 10, + "step_contract_sha256": "d3a274759255792ce110fcedbe1c10fb007d29184b4c1c6eba64ddd992990a25", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "4d0a2f29cae281f657d4d820c474cc7f718ec8331040d5517e3c80357966af1b", + "result_index": 10, + "step_contract_sha256": "d3a274759255792ce110fcedbe1c10fb007d29184b4c1c6eba64ddd992990a25", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "census_status": "not_a_row", + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane SampleKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 775, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_006_after.png", + "api_fallback": null, + "before_png": "steps/step_006_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'New Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 114, + 159 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_006", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_007_after.png", + "api_fallback": null, + "before_png": "steps/step_007_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Triage'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 85, + 214 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_007", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_008_after.png", + "api_fallback": null, + "before_png": "steps/step_008_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 344, + 350 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_008", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_009_after.png", + "api_fallback": null, + "before_png": "steps/step_009_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type ", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_009", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "guarded_coordinate", + "after_png": "steps/step_010_after.png", + "api_fallback": null, + "before_png": "steps/step_010_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "guarded_coordinate_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Save Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 134, + 457 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_010", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 8 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": true, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "COMPLETED_UNVERIFIED", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 775, + 186 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 114, + 159 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 85, + 214 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 344, + 350 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "Golden triage booking three months" + ], + "call": "type_text" + }, + { + "call": "cancel_pending_structural_guards" + }, + { + "args": [ + 134, + 457 + ], + "call": "arm_guarded_coordinate" + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "args": [ + 134, + 457 + ], + "call": "act_guarded_coordinate", + "kwargs": { + "double": false, + "expected_frame_sha256": "bbb8dfdecf30b0454ba805fc4566d211ac6e7b958e76f75ee00df1c8dc11a304" + } + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json b/packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json new file mode 100644 index 0000000000..ffb702bba2 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_pass_structural.json @@ -0,0 +1,1655 @@ +{ + "app_state": { + "banner": "Encounter saved — Golden triage booking three months", + "enc_item": "Triage — Golden triage booking three months", + "hash": "#patient/p1" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_005_before.png": "f55f1b301c4f53b7a2d9690e8583358911a33a16903ab93b7a09567a8e7158f0", + "steps/step_006_after.png": "ad792e883a6da0330c97a456acd21f054e264131365b70b336f66c71c17dc972", + "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_007_after.png": "5a220b78381249c1280c32a8fe1dafd896b68a32c019677f7c9014f07dee66c2", + "steps/step_007_before.png": "ad792e883a6da0330c97a456acd21f054e264131365b70b336f66c71c17dc972", + "steps/step_008_after.png": "60e0a3d48905c71fbf650de8a62c6c86d69bf48eef8d5a3469aea064c9127616", + "steps/step_008_before.png": "5a220b78381249c1280c32a8fe1dafd896b68a32c019677f7c9014f07dee66c2", + "steps/step_009_after.png": "3dd75cc7bda6990a869d201700fef88a58f8cb6a967089e8476fff3d8c5fac89", + "steps/step_009_before.png": "60e0a3d48905c71fbf650de8a62c6c86d69bf48eef8d5a3469aea064c9127616", + "steps/step_010_after.png": "b67a417320935e61795d3fc117b99c301045cfb1cc9cfb1f51515d4ecc36e5b9", + "steps/step_010_before.png": "bbb8dfdecf30b0454ba805fc4566d211ac6e7b958e76f75ee00df1c8dc11a304" + }, + "environment": { + "platform": "linux", + "playwright": "1.61.0" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [ + { + "attempt_state": "delivered", + "effects": [], + "intent": "click 'Save Encounter'", + "may_need_undo": true, + "position": 11, + "status": "unknown", + "step_id": "step_010", + "undo_id": null + } + ], + "effect_journal": [ + { + "approved_unverified": false, + "attempt_state": "delivered", + "collateral_reconciliation_actions": 0, + "consequential": true, + "effect_verified": null, + "intended_effect_contract_hashes": [], + "intent": "click 'Save Encounter'", + "observed_at": null, + "observed_effect": "unknown", + "step_id": "step_010", + "verification_performed": false + } + ], + "est_model_cost_usd": 0.0, + "execution_completed": true, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "COMPLETED_UNVERIFIED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": null, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": true, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "COMPLETED_UNVERIFIED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "fe84784a4fa6d1ffb51e672dd03890517fa2089273e848416e2c1c829092c5d7", + "result_index": 0, + "step_contract_sha256": "6bf682e8ab410f6db36beda60015bbe7818ef5558883b410f7740ffce7835ce0", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "01eca1f4ef4e7fdd9113ef35fb8c0e7da90895c785f5e93eef3d93f258d094bf", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "3d418dafc0decd2b2d7fa006422549e78b3f81e676df6acd0f3f475c41ed5dc0", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "bbd16e8fc0fc2c7310b70f92de6f58c0a7ab16adaa9cc46bfdfa1e9b63e9b34f", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "d8a865a76a78eb8c1f8c0a932f3cfb7c723715112f9ede5233b348fbf67d0358", + "result_index": 2, + "step_contract_sha256": "b1ac8e5ec1f94709f643ef6e4047dbbabe53d50ef6aee5b2982c89b1f9c33f90", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "25724a3f67da3f2bde2a47543b69af26905a62a4aea96814f038bc62c6089466", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "4581ab5cdf052d6bfbe08c733e0173c54c824297f177a7393233b07abd5f86af", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f02a7170072e316742505d17220ade035dd366ace896fa809d03a5be2eff626d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8868781da939c959072ff2bcf7488c30d6b07cadd8a4de97ca6c6791ead5ee8d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "64880fb29d2abf85340167a0746edfc7fdcf6f9d9259ce6f9a9a18465cb81b3e", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "901f38d1688f6eadc1d2d1edcab6f10ca76f034600448ecb925bdb21aa8a178d", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9e4263786e21aa0c2fbe6dbf8a9089b945c32199378d84cb53bd22cdf482d77c", + "result_index": 6, + "step_contract_sha256": "def1b78b00fc5538c91dd1ca76314e56a3054a8a919d28ca1010316059f173cc", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "9cd6efbb38a50616744e8d18d79928f9e64c59364646187f080a988f240d71b0", + "result_index": 6, + "step_contract_sha256": "def1b78b00fc5538c91dd1ca76314e56a3054a8a919d28ca1010316059f173cc", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "84710d18a9ad16229b276fcf71aa353821975d88e81be9efbcfb6b9d2faf552d", + "result_index": 7, + "step_contract_sha256": "5891fe63e3239ab1dd6ed30d206db52aa15605ec0d0df066492bf331663d5159", + "step_index": 7, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9df52ef8794b53be5eb524141445a398cfdbd2ab5eff586841dca1920d829bbe", + "result_index": 8, + "step_contract_sha256": "45ac4465db8e002d12457461189123a0f2d259951305680f3e64910bd9f428e4", + "step_index": 8, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "8e411b185cf3f7bca6cfbc58a7a049634d67b58898d546f45fa0499fb7d8fa6c", + "result_index": 9, + "step_contract_sha256": "6d7e1ac270c2a9bc0f3b2b6fac5b64fe9aa1faf4d7621853a6dc451c484a35b7", + "step_index": 9, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "008639c630d00a1c2c18d0ced1b25c63c0b2abd4f5f75fc18f93964aa2c29514", + "result_index": 10, + "step_contract_sha256": "d3a274759255792ce110fcedbe1c10fb007d29184b4c1c6eba64ddd992990a25", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "4d0a2f29cae281f657d4d820c474cc7f718ec8331040d5517e3c80357966af1b", + "result_index": 10, + "step_contract_sha256": "d3a274759255792ce110fcedbe1c10fb007d29184b4c1c6eba64ddd992990a25", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": "dom", + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "census_status": "not_a_row", + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 214, + 195 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 214, + 195 + ], + "region": [ + 49, + 177, + 330, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 214, + 264 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 214, + 264 + ], + "region": [ + 49, + 246, + 330, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 119, + 324 + ], + "region": [ + 49, + 304, + 140, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane SampleKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 776, + 186 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 776, + 186 + ], + "region": [ + 731, + 168, + 90, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_006_after.png", + "api_fallback": null, + "before_png": "steps/step_006_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'New Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 114, + 159 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 114, + 159 + ], + "region": [ + 24, + 139, + 180, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_006", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_007_after.png", + "api_fallback": null, + "before_png": "steps/step_007_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Triage'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 85, + 214 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 85, + 214 + ], + "region": [ + 25, + 195, + 120, + 38 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_007", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_008_after.png", + "api_fallback": null, + "before_png": "steps/step_008_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 344, + 350 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 344, + 350 + ], + "region": [ + 24, + 281, + 640, + 138 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_008", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_009_after.png", + "api_fallback": null, + "before_png": "steps/step_009_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type ", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_009", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "dom", + "after_png": "steps/step_010_after.png", + "api_fallback": null, + "before_png": "steps/step_010_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "dom_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Save Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 134, + 457 + ], + "rung": "structural", + "structural_handle": { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 134, + 457 + ], + "region": [ + 24, + 437, + 220, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "" + } + }, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_010", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "structural": 8 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": true, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "COMPLETED_UNVERIFIED", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Username", + "role": "textbox", + "selector": "#username", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 214, + 195 + ], + "region": [ + 49, + 177, + 330, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Password", + "role": "textbox", + "selector": "#password", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 214, + 264 + ], + "region": [ + 49, + 246, + 330, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Sign In", + "role": "button", + "selector": "#signin", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 119, + 324 + ], + "region": [ + 49, + 304, + 140, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Open", + "role": "button", + "selector": "#open-p1", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 776, + 186 + ], + "region": [ + 731, + 168, + 90, + 36 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "New Encounter", + "role": "button", + "selector": "#new-encounter", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 114, + 159 + ], + "region": [ + 24, + 139, + 180, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Triage", + "role": "button", + "selector": "#type-triage", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 85, + 214 + ], + "region": [ + 25, + 195, + 120, + 38 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Note", + "role": "textbox", + "selector": "#note", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 344, + 350 + ], + "region": [ + 24, + 281, + 640, + 138 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + "Golden triage booking three months" + ], + "call": "type_text" + }, + { + "call": "cancel_pending_structural_guards" + }, + { + "args": [ + { + "automation_id": null, + "frame_path": null, + "name": "Save Encounter", + "role": "button", + "selector": "#save-encounter", + "type": "StructuralLocator", + "window_name": null + }, + { + "candidate_count": 1, + "confidence": 1.0, + "point": [ + 134, + 457 + ], + "region": [ + 24, + 437, + 220, + 40 + ], + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ], + "target_fingerprint": "", + "type": "StructuralHandle" + } + ], + "call": "act_structural", + "kwargs": { + "double": false + } + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_rename.json b/packages/flow/tests/golden_runs/baselines/mockmed_rename.json new file mode 100644 index 0000000000..6824e39141 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_rename.json @@ -0,0 +1,1749 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#encounter" + }, + "artifacts": { + "heals/step_005/heal.json": "46e74ad796419f8db00c807d39881238460372fc5d3aa60948795abb7cac8b32", + "heals/step_005/patch.json": "7c8471d5cc3bd48e0e5cf5fc4d8cf65e1c9576d6ffe78a9448484edda699fc44", + "heals/step_005/screen.png": "d75e763a05baa64e18034d9ea887a98a66e4a16164be5367e2252e4033d88731", + "heals/step_005/template.png": "eca2fd5d3137dacda8ef89755450480df3a5ad42d93b83664ef6cf7de83c622c", + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "d75e763a05baa64e18034d9ea887a98a66e4a16164be5367e2252e4033d88731", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_005_before.png": "d75e763a05baa64e18034d9ea887a98a66e4a16164be5367e2252e4033d88731", + "steps/step_006_after.png": "474b3bbe66d5ba3af29d1602787b1035bc3b84925d94b929ba88ff15d96acedc", + "steps/step_006_before.png": "6ed64995b2131adb06af1588e7ab4ce5e52330a69979b7eab352f90180608e94", + "steps/step_007_after.png": "7b47061cac340b2de8fdcba39b718d3e7fb8fb57e5a540b4f5ec9417a7b63aa2", + "steps/step_007_before.png": "474b3bbe66d5ba3af29d1602787b1035bc3b84925d94b929ba88ff15d96acedc", + "steps/step_008_after.png": "9379216a4ab84c8efc94d26864ab5a09bfedc085879f7a81bab319680ef77e15", + "steps/step_008_before.png": "7b47061cac340b2de8fdcba39b718d3e7fb8fb57e5a540b4f5ec9417a7b63aa2", + "steps/step_009_after.png": "777a4d7e5737b7e62c9e4580fba8ef08c91228b49a21d43984b21d94675b0347", + "steps/step_009_before.png": "9379216a4ab84c8efc94d26864ab5a09bfedc085879f7a81bab319680ef77e15", + "steps/step_010_after.png": "777a4d7e5737b7e62c9e4580fba8ef08c91228b49a21d43984b21d94675b0347", + "steps/step_010_before.png": "777a4d7e5737b7e62c9e4580fba8ef08c91228b49a21d43984b21d94675b0347" + }, + "environment": { + "platform": "linux", + "playwright": "1.61.0" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [], + "effect_journal": [ + { + "approved_unverified": false, + "attempt_state": "not_actuated", + "collateral_reconciliation_actions": 0, + "consequential": true, + "effect_verified": null, + "intended_effect_contract_hashes": [], + "intent": "click 'Save Encounter'", + "observed_at": null, + "observed_effect": "unknown", + "step_id": "step_010", + "verification_performed": false + } + ], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'", + "click 'Open'", + "click 'New Encounter'", + "click 'Triage'", + "click recorded visual target", + "type " + ], + "intent": "click 'Save Encounter'", + "observed_texts": [ + "MockMed", + "Clinical demo - all data is fake", + "Jane Sample — MRN P1 — DOB 1980-01-01", + "New Encounter", + "Encounter Type", + "Triage", + "Consult", + "Note", + "Golden triage booking three months", + "Submit Encounter" + ], + "outcome": "halt", + "reason": "Step 'step_010' (click 'Save Encounter') is irreversible but only resolved via the 'geometry' rung — needs human confirmation; refusing to act (v0 policy)", + "state_id": "step_010" + }, + "heal_count": 1, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 16 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "e14ca9ac29b98020228a084be14344cd27b10e7c47fb3636a3a38d5d7a0d7856", + "result_index": 0, + "step_contract_sha256": "df4d533726194aad4dc7bfaa939ae0895fbe531cf4289e7472d8fcc29c21ae11", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "3567cb3c12a9d2a91b63994c63645fdf37634054ef35114b1465a696ff187b63", + "result_index": 1, + "step_contract_sha256": "c0ad8180c9cab7ab7bdc42c0d168390d14267ce5ce644f0e8715bd0113cace75", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "a6fbc20e5345489b2c2624d03150379a974a24fbf47f82d50c5c73d18d191c4c", + "result_index": 1, + "step_contract_sha256": "c0ad8180c9cab7ab7bdc42c0d168390d14267ce5ce644f0e8715bd0113cace75", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "d4f5c8c230b3663ab04746c246711231fb196dc6dd4ea4129cf323a84d9f1c7b", + "result_index": 1, + "step_contract_sha256": "c0ad8180c9cab7ab7bdc42c0d168390d14267ce5ce644f0e8715bd0113cace75", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "b4a7cb2f6833370b0d05b9b86c833d05a84a91c975f502c56d5e908d62fb7fb2", + "result_index": 2, + "step_contract_sha256": "357d58f30d11fb2e54adff5e3b1633ecac1eea0d73be1841edb023628e9e4b64", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "36b8c7dfe84ea59e0afbc4b878070922d97f2040f81d5b3d19328bb28370554d", + "result_index": 3, + "step_contract_sha256": "5818d11c17d308637d1f150462c13ff382400d80d9bfcd6d913a291aa2e6574d", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "1c4936aa63e03226446d1f8a7e9f53ac413bb3a6f2b54de557a30e4b57800a8e", + "result_index": 3, + "step_contract_sha256": "5818d11c17d308637d1f150462c13ff382400d80d9bfcd6d913a291aa2e6574d", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "fa320e8715ed3e82aa1374ffd2df19497e9d0a04eeee487f068f605ef0eac420", + "result_index": 4, + "step_contract_sha256": "bc9ae80fd729ae6c6bf5b4dc07dd39f4c01a64514de319bc56b0c44b45c46abc", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "e0a2923d65fd1c6bc3d5c1d159f1ae41a5052a977fd3f489ea92ca45d5230fb9", + "result_index": 4, + "step_contract_sha256": "bc9ae80fd729ae6c6bf5b4dc07dd39f4c01a64514de319bc56b0c44b45c46abc", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "c118cdc3ad5d601c2a35795a79d2011d6ee6b5f2b68aebd1f072292f5ea1dee5", + "result_index": 5, + "step_contract_sha256": "e21759fa142b9260705d062b8ff17c18a8f22c9e1edcbdb5057eb01f4fbaa7f3", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "9440cdcf2c4d54f92309db510a8e2c82d2266c0ea1cb24628df8b6c9991575d0", + "result_index": 5, + "step_contract_sha256": "e21759fa142b9260705d062b8ff17c18a8f22c9e1edcbdb5057eb01f4fbaa7f3", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "a267c4297a76e4421f9efd4acf4294b52b1ade18c7e5d418f93e49c2eeead87e", + "result_index": 6, + "step_contract_sha256": "ee3d772af2b77baae4f54a219deda336543c915b6c82deb9e65938fa993d4c88", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "f414169f8ed0afe8d82060f66207243d9ef55b61e4a56dab294bdcf7fd5c47e6", + "result_index": 6, + "step_contract_sha256": "ee3d772af2b77baae4f54a219deda336543c915b6c82deb9e65938fa993d4c88", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "b0348f239ee9498f0fc769538a6958eb601cb008ac6bd1c5ccd4be61a579ef2d", + "result_index": 7, + "step_contract_sha256": "bfaf2e9f79af1d44e6dc0dcfe1574e279bb6d8ccb75451d2f23c481b6c048b9d", + "step_index": 7, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "81721d22554e8111297bdba2c16fa7b43d8298d409cf02ff17e6ca62c66dc25c", + "result_index": 8, + "step_contract_sha256": "1567ea791cfb3f8a149b35e992da58808b4385db175a0177bd55b35919d4a11d", + "step_index": 8, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "8698ce2a5fe2ae81e4a9295cba11841b1158ae7644c4c114cd02da7938ccd714", + "result_index": 9, + "step_contract_sha256": "73571c859c98ef64459385424b20518e05be6bddee8393dbbd3b60f24053a861", + "step_index": 9, + "verdict": "passed", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "901478460b92e0f727888fe832c6c42ec48043a5599357391b953729b5638a88", + "result_index": 10, + "step_contract_sha256": "149fb3eb632f4adfeee748d1827ee3a085f013fba2f0f21c792bca2d7aeaf7df", + "step_index": 10, + "verdict": "unverifiable", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "3a0a81d106071a808380c7ed82a13e5592d7cd858ec0731e55eeca266c02f011", + "result_index": 10, + "step_contract_sha256": "149fb3eb632f4adfeee748d1827ee3a085f013fba2f0f21c792bca2d7aeaf7df", + "step_index": 10, + "verdict": "unverifiable", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "8fd9d5a9db005ea4eea7b2e57e2ba4994473f77f023ca370d32afa3fb18aa9d0" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "census_status": "not_a_row", + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 775, + 186 + ], + "context_text": "Jane Sample Knee pain referral High", + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 30, + "concats": [ + { + "c": "c8f3afe51e54101a", + "digit": false, + "i": 0, + "n": 10, + "name": true, + "r": "c8f3afe51e54101a", + "size": 2 + }, + { + "c": "889b7b67936cc714", + "digit": false, + "i": 0, + "n": 14, + "name": true, + "r": "889b7b67936cc714", + "size": 3 + }, + { + "c": "ec3cdd51930bbe48", + "digit": false, + "i": 0, + "n": 18, + "name": true, + "r": "012c14f98d142b52", + "size": 4 + }, + { + "c": "f568044c153a789d", + "digit": false, + "i": 1, + "n": 10, + "name": true, + "r": "f568044c153a789d", + "size": 2 + }, + { + "c": "39c3c847d0c00e09", + "digit": false, + "i": 1, + "n": 14, + "name": true, + "r": "1df7bb2273b3df1e", + "size": 3 + }, + { + "c": "70fa34d51b5f7d24", + "digit": false, + "i": 1, + "n": 22, + "name": true, + "r": "3f8bfbc445a153ce", + "size": 4 + }, + { + "c": "a489e05dc4e788cd", + "digit": false, + "i": 2, + "n": 8, + "name": true, + "r": "952951299539c02a", + "size": 2 + }, + { + "c": "a17b2d971bc7336e", + "digit": false, + "i": 2, + "n": 16, + "name": true, + "r": "b6031ab669bb21d4", + "size": 3 + }, + { + "c": "554e958767924e9f", + "digit": false, + "i": 2, + "n": 20, + "name": true, + "r": "8cb792749b8c4a26", + "size": 4 + }, + { + "c": "fb3767c825cca1e4", + "digit": false, + "i": 3, + "n": 12, + "name": true, + "r": "f8736267c1e29056", + "size": 2 + }, + { + "c": "85136127f9b54bf1", + "digit": false, + "i": 3, + "n": 16, + "name": true, + "r": "9cb6424db9c1775c", + "size": 3 + }, + { + "c": "08d9cd2536340e25", + "digit": false, + "i": 4, + "n": 12, + "name": true, + "r": "3c24468959fd3d49", + "size": 2 + } + ], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "captured_context|exact|": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|casefold": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,collapse_whitespace": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|collapse_whitespace": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|collapse_whitespace,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,casefold": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,collapse_whitespace": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "structured|exact|": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|casefold": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,collapse_whitespace": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|collapse_whitespace": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|collapse_whitespace,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,casefold": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,collapse_whitespace": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338" + }, + "structured": "f54030eb9739c951", + "structured_row": true, + "tokens": [ + { + "alpha": true, + "c": "c3f03513b97ac375", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "c3f03513b97ac375" + }, + { + "alpha": true, + "c": "9ee71e296b9f12b0", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 6, + "name": true, + "r": "9ee71e296b9f12b0" + }, + { + "alpha": true, + "c": "474017e2662aec63", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "474017e2662aec63" + }, + { + "alpha": true, + "c": "e2c9d9dd2be64c93", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "dbeb4aa0ff7e457c" + }, + { + "alpha": true, + "c": "e85574407f1c63d2", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 8, + "name": true, + "r": "e85574407f1c63d2" + }, + { + "alpha": true, + "c": "f0d7c32ddfe55ff9", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "291356604e133bf5" + } + ] + }, + "landmarks": [ + { + "distance_px": 52, + "dx_px": 21, + "dy_px": 48, + "ocr_text": "Action", + "relation": "above" + }, + { + "distance_px": 58, + "dx_px": -2, + "dy_px": -58, + "ocr_text": "Open", + "relation": "below" + } + ], + "ocr_text": "View", + "region": [ + 695, + 154, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Open", + "role": "button", + "selector": "#open-p1", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_005.png" + }, + "old_anchor": { + "click_point": [ + 775, + 186 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 30, + "concats": [ + { + "c": "c8f3afe51e54101a", + "digit": false, + "i": 0, + "n": 10, + "name": true, + "r": "c8f3afe51e54101a", + "size": 2 + }, + { + "c": "889b7b67936cc714", + "digit": false, + "i": 0, + "n": 14, + "name": true, + "r": "889b7b67936cc714", + "size": 3 + }, + { + "c": "ec3cdd51930bbe48", + "digit": false, + "i": 0, + "n": 18, + "name": true, + "r": "012c14f98d142b52", + "size": 4 + }, + { + "c": "f568044c153a789d", + "digit": false, + "i": 1, + "n": 10, + "name": true, + "r": "f568044c153a789d", + "size": 2 + }, + { + "c": "39c3c847d0c00e09", + "digit": false, + "i": 1, + "n": 14, + "name": true, + "r": "1df7bb2273b3df1e", + "size": 3 + }, + { + "c": "70fa34d51b5f7d24", + "digit": false, + "i": 1, + "n": 22, + "name": true, + "r": "3f8bfbc445a153ce", + "size": 4 + }, + { + "c": "a489e05dc4e788cd", + "digit": false, + "i": 2, + "n": 8, + "name": true, + "r": "952951299539c02a", + "size": 2 + }, + { + "c": "a17b2d971bc7336e", + "digit": false, + "i": 2, + "n": 16, + "name": true, + "r": "b6031ab669bb21d4", + "size": 3 + }, + { + "c": "554e958767924e9f", + "digit": false, + "i": 2, + "n": 20, + "name": true, + "r": "8cb792749b8c4a26", + "size": 4 + }, + { + "c": "fb3767c825cca1e4", + "digit": false, + "i": 3, + "n": 12, + "name": true, + "r": "f8736267c1e29056", + "size": 2 + }, + { + "c": "85136127f9b54bf1", + "digit": false, + "i": 3, + "n": 16, + "name": true, + "r": "9cb6424db9c1775c", + "size": 3 + }, + { + "c": "08d9cd2536340e25", + "digit": false, + "i": 4, + "n": 12, + "name": true, + "r": "3c24468959fd3d49", + "size": 2 + } + ], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "captured_context|exact|": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|casefold": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,collapse_whitespace": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|collapse_whitespace": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|collapse_whitespace,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,casefold": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,collapse_whitespace": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "structured|exact|": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|casefold": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,collapse_whitespace": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|collapse_whitespace": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|collapse_whitespace,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,casefold": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,collapse_whitespace": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338" + }, + "structured": "f54030eb9739c951", + "structured_row": true, + "tokens": [ + { + "alpha": true, + "c": "c3f03513b97ac375", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "c3f03513b97ac375" + }, + { + "alpha": true, + "c": "9ee71e296b9f12b0", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 6, + "name": true, + "r": "9ee71e296b9f12b0" + }, + { + "alpha": true, + "c": "474017e2662aec63", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "474017e2662aec63" + }, + { + "alpha": true, + "c": "e2c9d9dd2be64c93", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "dbeb4aa0ff7e457c" + }, + { + "alpha": true, + "c": "e85574407f1c63d2", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 8, + "name": true, + "r": "e85574407f1c63d2" + }, + { + "alpha": true, + "c": "f0d7c32ddfe55ff9", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "291356604e133bf5" + } + ] + }, + "landmarks": [ + { + "distance_px": 52, + "dx_px": 21, + "dy_px": 48, + "ocr_text": "Action", + "relation": "above" + }, + { + "distance_px": 58, + "dx_px": -2, + "dy_px": -58, + "ocr_text": "Open", + "relation": "below" + } + ], + "ocr_text": "Open", + "region": [ + 695, + 154, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Open", + "role": "button", + "selector": "#open-p1", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_005.png" + }, + "rung_used": "geometry", + "screenshot": "heals/step_005/screen.png", + "step_id": "step_005" + }, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane SampleKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 0.9, + "elapsed_ms": "", + "point": [ + 775, + 186 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_006_after.png", + "api_fallback": null, + "before_png": "steps/step_006_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'New Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 114, + 159 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_006", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_007_after.png", + "api_fallback": null, + "before_png": "steps/step_007_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Triage'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 85, + 214 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_007", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_008_after.png", + "api_fallback": null, + "before_png": "steps/step_008_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 344, + 350 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_008", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_009_after.png", + "api_fallback": null, + "before_png": "steps/step_009_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type ", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_009", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_010_after.png", + "api_fallback": null, + "before_png": "steps/step_010_before.png", + "delivery_attempted": false, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Step 'step_010' (click 'Save Encounter') is irreversible but only resolved via the 'geometry' rung — needs human confirmation; refusing to act (v0 policy)", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Save Encounter'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": { + "confidence": 0.9, + "elapsed_ms": "", + "point": [ + 134, + 457 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_010", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "geometry": 1, + "template": 6 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "HALTED_BEFORE_EFFECT", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 775, + 186 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 114, + 159 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 85, + 214 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 344, + 350 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "Golden triage booking three months" + ], + "call": "type_text" + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "call": "cancel_guarded_keyboard" + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_sort.json b/packages/flow/tests/golden_runs/baselines/mockmed_sort.json new file mode 100644 index 0000000000..2c52c1348a --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_sort.json @@ -0,0 +1,734 @@ +{ + "app_state": { + "banner": null, + "enc_item": null, + "hash": "#tasks" + }, + "artifacts": { + "steps/step_000_after.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_000_before.png": "44b3ccdad5dc59cb4b715b3959f091466cb19e189460aab855be90b0830dba9e", + "steps/step_001_after.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_001_before.png": "f917f98c929db9d01b6fccaec9cb75444f22ded9f16ddaac14215e82773d7941", + "steps/step_002_after.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_002_before.png": "3c9e14147c193c97233b4cf6d526812e0885b09567627e1f3e3dfb327299bdf0", + "steps/step_003_after.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_003_before.png": "3d2f31855f80e268f691b848fc0214545270a4d0deb5670c41c6d2b86a6b34f4", + "steps/step_004_after.png": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58", + "steps/step_004_before.png": "d9afea150060e7bfef36886e195d4f991078ad4a297cf124346b66e34d86d11a", + "steps/step_005_after.png": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58", + "steps/step_005_before.png": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58" + }, + "environment": { + "platform": "linux", + "playwright": "1.61.0" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [], + "effect_journal": [], + "est_model_cost_usd": 0.0, + "execution_completed": false, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "HALTED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": { + "completed_intents": [ + "click recorded visual target", + "type 'nurse.demo'", + "click recorded visual target", + "type 'mockmed-demo-pass'", + "click 'Sign In'" + ], + "intent": "click 'Open'", + "observed_texts": [ + "MockMed", + "Clinical demo — all data is fake", + "Referral Tasks", + "Patient", + "Reason", + "Priority", + "Action", + "Alex Testcase", + "Cardiology follow-up", + "Medium", + "Open", + "Jane Sample", + "Knee pain referral", + "High", + "Sam Specimen", + "Dermatology consult", + "Low" + ], + "outcome": "halt", + "reason": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", + "state_id": "step_005" + }, + "heal_count": 0, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": false, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "HALTED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 9 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "fe84784a4fa6d1ffb51e672dd03890517fa2089273e848416e2c1c829092c5d7", + "result_index": 0, + "step_contract_sha256": "6bf682e8ab410f6db36beda60015bbe7818ef5558883b410f7740ffce7835ce0", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "01eca1f4ef4e7fdd9113ef35fb8c0e7da90895c785f5e93eef3d93f258d094bf", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "3d418dafc0decd2b2d7fa006422549e78b3f81e676df6acd0f3f475c41ed5dc0", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "bbd16e8fc0fc2c7310b70f92de6f58c0a7ab16adaa9cc46bfdfa1e9b63e9b34f", + "result_index": 1, + "step_contract_sha256": "26ac0c9d60e78c9b8303f3fe2c312580fd56e59461afb048d40050c0e68272c5", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "d8a865a76a78eb8c1f8c0a932f3cfb7c723715112f9ede5233b348fbf67d0358", + "result_index": 2, + "step_contract_sha256": "b1ac8e5ec1f94709f643ef6e4047dbbabe53d50ef6aee5b2982c89b1f9c33f90", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "25724a3f67da3f2bde2a47543b69af26905a62a4aea96814f038bc62c6089466", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "4581ab5cdf052d6bfbe08c733e0173c54c824297f177a7393233b07abd5f86af", + "result_index": 3, + "step_contract_sha256": "bb2d440a21097bb9e2e5760a665d1d0cbbe8421e54d257bff91719740978e300", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f02a7170072e316742505d17220ade035dd366ace896fa809d03a5be2eff626d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "8868781da939c959072ff2bcf7488c30d6b07cadd8a4de97ca6c6791ead5ee8d", + "result_index": 4, + "step_contract_sha256": "fe3a75adf814f46b7f86e46632edb31eb224de9d27e27c73427865b915ddd0cf", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "64880fb29d2abf85340167a0746edfc7fdcf6f9d9259ce6f9a9a18465cb81b3e", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "901f38d1688f6eadc1d2d1edcab6f10ca76f034600448ecb925bdb21aa8a178d", + "result_index": 5, + "step_contract_sha256": "f60d0abbaeb8f1a6035aa61c533157d39f8ae8688a0883bf3adb79b5fcba0b65", + "step_index": 5, + "verdict": "unverifiable", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 11 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "census_status": "not_a_row", + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 195 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 210, + 264 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 119, + 324 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": false, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": "Identity check failed for step 'step_005' (click 'Open'): a target was found positionally (rung 'template', confidence 1.00) but its surrounding text does not match the recorded target's — expected '', observed 'Alex TestcaseCardiology follow-upMedium' (coverage 0.00) — refusing to act; run aborted", + "exception_handled": false, + "failure_category": "safety_halt", + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": { + "abstain_reason": null, + "coverage": 0.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Alex TestcaseCardiology follow-upMedium", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "mismatch" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": false, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 775, + 186 + ], + "rung": "template", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": true, + "safety_refusal_evidence": { + "code": "identity_conflict", + "detector_input_sha256": "9788965e422a13712748bc347c39dc97c111ee0f6757f1ca68bab14112bffa58", + "stage": "identity_verification" + }, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "template": 3 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": false, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "REJECTED_POLICY", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 210, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 210, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 119, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "call": "cancel_guarded_keyboard" + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} diff --git a/packages/flow/tests/golden_runs/baselines/mockmed_theme.json b/packages/flow/tests/golden_runs/baselines/mockmed_theme.json new file mode 100644 index 0000000000..ed6d9f7615 --- /dev/null +++ b/packages/flow/tests/golden_runs/baselines/mockmed_theme.json @@ -0,0 +1,2755 @@ +{ + "app_state": { + "banner": "Encounter saved — Golden triage booking three months", + "enc_item": "Triage — Golden triage booking three months", + "hash": "#patient/p1" + }, + "artifacts": { + "heals/step_000/heal.json": "45b77855b26f2f148e5539a1b66a37e95f870e7230826aad6c77b93f747f463c", + "heals/step_000/patch.json": "71cd67799906bf7c592709ae3ae7647a5e27b296994947579d8b31ea910badd8", + "heals/step_000/screen.png": "9e43117c8f5dcc3ba3a5e6eb636f9e736b6c31feaee783d080458d35a162c5e4", + "heals/step_000/template.png": "59e7a505c0762bde07517ef08e419406cd83f7024620b863a3924bcad58f4bf4", + "heals/step_002/heal.json": "3320e80c4635b574e11204132d8b5dffaaf7582ae2b5d5965c7f435a1a1bd921", + "heals/step_002/patch.json": "e6809b37b0d857625c24b4bd7e13ec602d2caa85c75468de45763191b78e7725", + "heals/step_002/screen.png": "f3e6efed2eaf69d8e3f7ea4f3f03d6010b6520add327ca0d20cc8fe15b3304c0", + "heals/step_002/template.png": "59e7a505c0762bde07517ef08e419406cd83f7024620b863a3924bcad58f4bf4", + "heals/step_004/heal.json": "c6bc342a06b8347d98125f18162a4aa7f1f1622cd58e1053411c47b490cc5c10", + "heals/step_004/patch.json": "6fd04b3d1545c31ae069240fab0ad3b6d51d98f1785b2bb77b54a253df353ebd", + "heals/step_004/screen.png": "d4b2458d828ecadf3a558090f4d9079b8dffcda558e9a7a709d699802d950195", + "heals/step_004/template.png": "c6e8bd05f344066f595bf57ac4a1523be2b6153cf71d57b2ca27807ca872f0bb", + "heals/step_005/heal.json": "82dc30b32e5cc0554820c9b17bac375b3cbed0332af1b1ccd203b36fd80a8df3", + "heals/step_005/patch.json": "88b554680e2a36a5d93a532c6e3c995be7fedf8857988409502a0512e04e2655", + "heals/step_005/screen.png": "0cf5a5011ed7f8fa456398dc5e2a9ae679813decd68ce9e78ff7dd4f79006269", + "heals/step_005/template.png": "330ed0efd8adf2c753d080188513c917969d8aafbeed14d0da248694d371e1c4", + "heals/step_006/heal.json": "05c56f8e8e6891ab70343cdb3e6293ba8cabd5bbb64939f2708bc37e628320ea", + "heals/step_006/patch.json": "36f0e22ed46b0fd824f77418cc844368b6377a4794c0133111e42117f21fa720", + "heals/step_006/screen.png": "1b9ebdb9d885ba46909fc8fb32fccb362380b5b576e49e1e91bb1224c36a0d01", + "heals/step_006/template.png": "0d18d8e6f13f243c09ce02ef3646a6544c11bd7136e053a305782526a17c4bed", + "heals/step_007/heal.json": "7902740263a482d1075e162fa7bf5c4283d67048323471bc1c8e1f4293e4930f", + "heals/step_007/patch.json": "dc03e9b33f2678d2ca9b1291b5669bc0c0af6fa2818004ad692940063f3aff01", + "heals/step_007/screen.png": "91c38bb1107a145bdd69aa7d16a91d6ccfd0ae591fd6dc05dcf8c4fb1542f97d", + "heals/step_007/template.png": "ce94517fe2c30adc2379a09c8e7fc0569bd06e5eb63bd24cdc401254dc5463da", + "heals/step_008/heal.json": "4aa8271e6da90c717b97face3539093ef59f99d36a467b020143fb0da3c29248", + "heals/step_008/patch.json": "fd9a4e1164b2422356e1a1f2967150712f1f8ee7d0f68725d37b08a06ceb833f", + "heals/step_008/screen.png": "1bc7f89daaad362b59777806d2acc7312e7ed7c969c1ba527925bab6c45358c4", + "heals/step_008/template.png": "13148f2b0f7acf7cf845361f49c4bce75d767eced0aff8f6f833db483bcf9ea8", + "heals/step_010/heal.json": "7c6495e882ee0fc20bd6994295f30a077e389531da9786662d7d4bb328d7bff3", + "heals/step_010/patch.json": "9ad14f25582935468fa2900a75b4808ebbd072bce75454bea90e8d64be94aa48", + "heals/step_010/screen.png": "e1279f4bc5f9d5aed67409a63ea016fed425884ebbbfdd314f0d19503820e6f4", + "heals/step_010/template.png": "588067ceff3b713e39d281edfa82ccbe9ec3bf9e3bd79a0a9e494b61051512cc", + "steps/step_000_after.png": "3bc795168abc8711dbd98e9b00d2f281769a04f17f00fa26bb736e6b98c81f11", + "steps/step_000_before.png": "9e43117c8f5dcc3ba3a5e6eb636f9e736b6c31feaee783d080458d35a162c5e4", + "steps/step_001_after.png": "f3e6efed2eaf69d8e3f7ea4f3f03d6010b6520add327ca0d20cc8fe15b3304c0", + "steps/step_001_before.png": "3bc795168abc8711dbd98e9b00d2f281769a04f17f00fa26bb736e6b98c81f11", + "steps/step_002_after.png": "cce1a9982d9ab4aee39eb450454413232eec5c3231793376e55f1db972ff2665", + "steps/step_002_before.png": "f3e6efed2eaf69d8e3f7ea4f3f03d6010b6520add327ca0d20cc8fe15b3304c0", + "steps/step_003_after.png": "d4b2458d828ecadf3a558090f4d9079b8dffcda558e9a7a709d699802d950195", + "steps/step_003_before.png": "cce1a9982d9ab4aee39eb450454413232eec5c3231793376e55f1db972ff2665", + "steps/step_004_after.png": "0cf5a5011ed7f8fa456398dc5e2a9ae679813decd68ce9e78ff7dd4f79006269", + "steps/step_004_before.png": "d4b2458d828ecadf3a558090f4d9079b8dffcda558e9a7a709d699802d950195", + "steps/step_005_after.png": "1b9ebdb9d885ba46909fc8fb32fccb362380b5b576e49e1e91bb1224c36a0d01", + "steps/step_005_before.png": "0cf5a5011ed7f8fa456398dc5e2a9ae679813decd68ce9e78ff7dd4f79006269", + "steps/step_006_after.png": "91c38bb1107a145bdd69aa7d16a91d6ccfd0ae591fd6dc05dcf8c4fb1542f97d", + "steps/step_006_before.png": "1b9ebdb9d885ba46909fc8fb32fccb362380b5b576e49e1e91bb1224c36a0d01", + "steps/step_007_after.png": "1bc7f89daaad362b59777806d2acc7312e7ed7c969c1ba527925bab6c45358c4", + "steps/step_007_before.png": "91c38bb1107a145bdd69aa7d16a91d6ccfd0ae591fd6dc05dcf8c4fb1542f97d", + "steps/step_008_after.png": "b14d8b9402b81774ed13cc4d0b47956252d2ea54412f2d6405f69d0a5f12057b", + "steps/step_008_before.png": "1bc7f89daaad362b59777806d2acc7312e7ed7c969c1ba527925bab6c45358c4", + "steps/step_009_after.png": "b6ee4c11e302ec2103675add5f693471fd56035e1e55690dc6934da1d82b26f1", + "steps/step_009_before.png": "b14d8b9402b81774ed13cc4d0b47956252d2ea54412f2d6405f69d0a5f12057b", + "steps/step_010_after.png": "0ebcd362b90dcc7373c13b8b570272facdf3dad65666174144f388fcf7613f9e", + "steps/step_010_before.png": "e1279f4bc5f9d5aed67409a63ea016fed425884ebbbfdd314f0d19503820e6f4" + }, + "environment": { + "platform": "linux", + "playwright": "1.61.0" + }, + "report": { + "approved_unverified_effect_step_ids": [], + "attended_program_transition_evidence": [], + "bundle_content_digest": "f84b6fcbbae3daf1bd845728988bb3324d89c13307f7c493a151670bce3cfefc", + "business_decision_evidence": [], + "canceled": false, + "change_ledger": [ + { + "attempt_state": "delivered", + "effects": [], + "intent": "click 'Save Encounter'", + "may_need_undo": true, + "position": 11, + "status": "unknown", + "step_id": "step_010", + "undo_id": null + } + ], + "effect_journal": [ + { + "approved_unverified": false, + "attempt_state": "delivered", + "collateral_reconciliation_actions": 0, + "consequential": true, + "effect_verified": null, + "intended_effect_contract_hashes": [], + "intent": "click 'Save Encounter'", + "observed_at": null, + "observed_effect": "unknown", + "step_id": "step_010", + "verification_performed": false + } + ], + "est_model_cost_usd": 0.0, + "execution_completed": true, + "execution_entry_url": null, + "execution_origin": null, + "execution_outcome": "COMPLETED_UNVERIFIED", + "execution_profile": "demo", + "execution_target_kind": null, + "external_network_calls": "unknown", + "governed_approval_source": null, + "governed_authorization_created_at": null, + "governed_authorization_id": null, + "governed_authorized_effect_contracts": {}, + "governed_minimum_effect_tier": null, + "governed_policy_contract_sha256": null, + "governed_policy_name": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_run_id_sha256": null, + "governed_qualified_effect_requirements": [], + "governed_runtime_inputs_digest": null, + "halt": null, + "heal_count": 8, + "idempotency_key": null, + "idempotent_replay": false, + "identity_applicable_steps": 8, + "identity_armed_steps": 6, + "identity_unarmed": [ + { + "intent": "click recorded visual target", + "reason": "row text outside the target's label is too generic (< 12 squashed chars after volatile-line filtering)", + "step_id": "step_002" + }, + { + "intent": "click 'Sign In'", + "reason": "the only readable row text is the target's own label (mutable evidence, excluded from identity)", + "step_id": "step_004" + } + ], + "loop_iterations": [], + "model_calls": 0, + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_environment_binding_sha256": null, + "observed_environment_digest": null, + "observed_session_sha256": null, + "outcome_envelope": { + "compensation_actions": 0, + "evidence_classes": [ + "identity", + "postcondition" + ], + "execution_completed": true, + "external_network_calls": "unknown", + "model_calls": 0, + "outcome": "COMPLETED_UNVERIFIED", + "passed_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "postcondition_evidence": [ + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "f8082c5793202a5e6ebc90b26dc9f679e5c00844011c108fde87853af6a55894", + "result_index": 0, + "step_contract_sha256": "a01c96ba967c7515c31a97d43483f1ff093386c592b958595997290bb2fa2836", + "step_index": 0, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "06ed14d7420647241e42a4c6770a47db5d2b77a75cf2d832ab824e2ac8bb5ff9", + "result_index": 1, + "step_contract_sha256": "2f0fed77c2a62bd117c85bacffa7b0af1d725d667149b5f01803637014baa212", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "0cdcd15d1a1868e3de5bdd9308274b68412d62c7e0a97c7566f4eacb8b82986b", + "result_index": 1, + "step_contract_sha256": "2f0fed77c2a62bd117c85bacffa7b0af1d725d667149b5f01803637014baa212", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "9744957e3797f1a13b7931d3f40f07ca094732f890841f94eead38b3c716b4d3", + "result_index": 1, + "step_contract_sha256": "2f0fed77c2a62bd117c85bacffa7b0af1d725d667149b5f01803637014baa212", + "step_index": 1, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "5ee97a0fa406897d58f8d5df52e553ab2c550281dec4ab7354fe8fdf2dcc3e8e", + "result_index": 2, + "step_contract_sha256": "bd8480097db84aab25ef1b7b29476b11dbe167fa30d7440f640795f79a1e2a6f", + "step_index": 2, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "b434056235d1b371fe30064e0313696cf24a2ab11b56827e0a004d9534a1bb60", + "result_index": 3, + "step_contract_sha256": "893b4812df70bdcd7d26c08e37379fdd1eb0343e3bc78280e51810e22cffdcfa", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "93d77ed5c45a66a4c133e6147571ac28a3b142513440a590c98ea9c69d806443", + "result_index": 3, + "step_contract_sha256": "893b4812df70bdcd7d26c08e37379fdd1eb0343e3bc78280e51810e22cffdcfa", + "step_index": 3, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "61123bcc921588b704d15687929525ad3331184a6d686d292ac518401697688a", + "result_index": 4, + "step_contract_sha256": "67461912f3bc96a04fda928a2aa38a5977494d3e52d4626321ba8e85761295ab", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "20a7c28ffb99d6afeb8befaf4b1b1c01175562fc2a8f0dec9678dd0f2bfb6d4e", + "result_index": 4, + "step_contract_sha256": "67461912f3bc96a04fda928a2aa38a5977494d3e52d4626321ba8e85761295ab", + "step_index": 4, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "77a9eedf0508d517d86e3355973548c91e9768cee6f38eb1f00eddb7231dfa75", + "result_index": 5, + "step_contract_sha256": "c2ee00220874c064ea77a965e83334d1a613bf71ed370e1db83f13eb0f123506", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "f02b78c1b95737ca4e0e0dec57b66007e0437d0602f6f3f4d29055d7dc84694a", + "result_index": 5, + "step_contract_sha256": "c2ee00220874c064ea77a965e83334d1a613bf71ed370e1db83f13eb0f123506", + "step_index": 5, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "591c7ebf5d2d4795164b5dee5abdd0dc82b584403f068c303464e03c69042d25", + "result_index": 6, + "step_contract_sha256": "7f9025788fe1cb61aaa88e9be9a8cda7addc689c085cf31da585cdbb1e5f0d04", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "27080fe09665d64df219b99af80563f5d478a8287cd6fa98050cb75421b25183", + "result_index": 6, + "step_contract_sha256": "7f9025788fe1cb61aaa88e9be9a8cda7addc689c085cf31da585cdbb1e5f0d04", + "step_index": 6, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "aec2d66833887469de816004f070a02f7b20fa793e331d4f41e36a3225f6c9bf", + "result_index": 7, + "step_contract_sha256": "3d80afc7391c10ca9dd11390ae08e90b4aa20f96fa4ca121de8ad60b35c20366", + "step_index": 7, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "0c96d8266f18a8e2559de924fae49addb579859a35454ee54570eaacfe74ed50", + "result_index": 8, + "step_contract_sha256": "f09755e0b5c4eb6c4d13bb87880986e98e8c5ba1f85cf4b44afc27cd2aceb145", + "step_index": 8, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "type", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "intrinsic_input_readback", + "contract_sha256": "39e75a9b269843e93de9475193f99edd6e76191e0362bd0e64ad28d84001b062", + "result_index": 9, + "step_contract_sha256": "57d9227de0d04165ec599a70e0dd88187fbf114fbb2a1fe24f8cb1871370a51f", + "step_index": 9, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 0, + "contract_kind": "explicit_predicate", + "contract_sha256": "9d1ea5165596f012fbf079d4c189cadfdac35f823d47e34eb9230e167bbaba08", + "result_index": 10, + "step_contract_sha256": "e889002eebb51bd1490367cfdaa95546534cc522f6fbc804fc4d942efc7d1a68", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + { + "action_kind": "click", + "actuation_path": "gui", + "contract_index": 1, + "contract_kind": "explicit_predicate", + "contract_sha256": "b29e5b4a32579cbe1d72243706b1bd7e1cd0d19b7e8e46b941fdf7d388643c0e", + "result_index": 10, + "step_contract_sha256": "e889002eebb51bd1490367cfdaa95546534cc522f6fbc804fc4d942efc7d1a68", + "step_index": 10, + "verdict": "passed", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + } + ], + "production_eligible": false, + "profile": "demo", + "required_contracts": { + "authorization": 0, + "effect": 0, + "identity": 0, + "postcondition": 18 + }, + "version": "openadapt.execution-outcome/v1", + "workflow_contract_sha256": "c0bafb81f3a05d259954e24b1cae5a1fcf53bd4da65e9c07b4424e879d66a05f" + }, + "parameter_schema_sha256": "b9706e023d1b70651493a1b2b68bb1939f7173f74b5e574d4f9fa57acc89fc6d", + "params": { + "note": "Golden triage booking three months" + }, + "production_eligible": false, + "program_exception_evidence": [], + "program_transition_evidence": [], + "qualification_environment_observer_contract_sha256": null, + "qualification_environment_observer_id": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "readback": null, + "recorded_surface": null, + "render_scale": null, + "required_identity_step_ids": [], + "results": [ + { + "actuation": null, + "after_png": "steps/step_000_after.png", + "api_fallback": null, + "before_png": "steps/step_000_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 214, + 195 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|casefold": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|casefold,collapse_whitespace": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|casefold,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|collapse_whitespace": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|collapse_whitespace,strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc,casefold": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,collapse_whitespace": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc,strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd" + }, + "structured": "9eec048367ca69ba", + "structured_row": false, + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 130, + "dx_px": 76, + "dy_px": 106, + "ocr_text": "Sign in to MockMed", + "relation": "above" + }, + { + "distance_px": 132, + "dx_px": 129, + "dy_px": 29, + "ocr_text": "Username", + "relation": "left_of" + } + ], + "ocr_text": null, + "region": [ + 134, + 163, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Username", + "role": "textbox", + "selector": "#username", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_000.png" + }, + "old_anchor": { + "click_point": [ + 214, + 195 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|casefold": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|casefold,collapse_whitespace": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|casefold,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|collapse_whitespace": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|collapse_whitespace,strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc,casefold": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "9eec048367ca69baffeb217515e46fb88057f0f81ff3c12480fbae4c07f124a9", + "structured|normalized|unicode_nfkc,collapse_whitespace": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd", + "structured|normalized|unicode_nfkc,strip_punctuation": "478dde8278038b459d4f8e1e8dd55feea2866009e052c41fe0da626b19d472fd" + }, + "structured": "9eec048367ca69ba", + "structured_row": false, + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 130, + "dx_px": 76, + "dy_px": 106, + "ocr_text": "Sign in to MockMed", + "relation": "above" + }, + { + "distance_px": 132, + "dx_px": 129, + "dy_px": 29, + "ocr_text": "Username", + "relation": "left_of" + } + ], + "ocr_text": null, + "region": [ + 134, + 163, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Username", + "role": "textbox", + "selector": "#username", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_000.png" + }, + "rung_used": "geometry", + "screenshot": "heals/step_000/screen.png", + "step_id": "step_000" + }, + "identity": { + "abstain_reason": null, + "census_status": "not_a_row", + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Username Password Sign In", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 0.9, + "elapsed_ms": "", + "point": [ + 214, + 195 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_000", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_001_after.png", + "api_fallback": null, + "before_png": "steps/step_001_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'nurse.demo'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_001", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_002_after.png", + "api_fallback": null, + "before_png": "steps/step_002_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 214, + 264 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": null, + "landmarks": [ + { + "distance_px": 112, + "dx_px": 94, + "dy_px": -60, + "ocr_text": "Sign In", + "relation": "left_of" + }, + { + "distance_px": 132, + "dx_px": 129, + "dy_px": 30, + "ocr_text": "Password", + "relation": "left_of" + } + ], + "ocr_text": null, + "region": [ + 134, + 232, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Password", + "role": "textbox", + "selector": "#password", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_002.png" + }, + "old_anchor": { + "click_point": [ + 214, + 264 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": null, + "landmarks": [ + { + "distance_px": 112, + "dx_px": 94, + "dy_px": -60, + "ocr_text": "Sign In", + "relation": "left_of" + }, + { + "distance_px": 132, + "dx_px": 129, + "dy_px": 30, + "ocr_text": "Password", + "relation": "left_of" + } + ], + "ocr_text": null, + "region": [ + 134, + 232, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Password", + "role": "textbox", + "selector": "#password", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_002.png" + }, + "rung_used": "geometry", + "screenshot": "heals/step_002/screen.png", + "step_id": "step_002" + }, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 0.9, + "elapsed_ms": "", + "point": [ + 214, + 264 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_002", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_003_after.png", + "api_fallback": null, + "before_png": "steps/step_003_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type 'mockmed-demo-pass'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_003", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_004_after.png", + "api_fallback": null, + "before_png": "steps/step_004_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 120, + 324 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": null, + "landmarks": [ + { + "distance_px": 95, + "dx_px": 34, + "dy_px": 89, + "ocr_text": "Password", + "relation": "above" + }, + { + "distance_px": 130, + "dx_px": 19, + "dy_px": 129, + "ocr_text": "nurse.demo", + "relation": "above" + } + ], + "ocr_text": "Sign In", + "region": [ + 40, + 292, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Sign In", + "role": "button", + "selector": "#signin", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_004.png" + }, + "old_anchor": { + "click_point": [ + 119, + 324 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": null, + "landmarks": [ + { + "distance_px": 95, + "dx_px": 34, + "dy_px": 89, + "ocr_text": "Password", + "relation": "above" + }, + { + "distance_px": 130, + "dx_px": 19, + "dy_px": 129, + "ocr_text": "nurse.demo", + "relation": "above" + } + ], + "ocr_text": "Sign In", + "region": [ + 39, + 292, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Sign In", + "role": "button", + "selector": "#signin", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_004.png" + }, + "rung_used": "ocr", + "screenshot": "heals/step_004/screen.png", + "step_id": "step_004" + }, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Sign In'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 120, + 324 + ], + "rung": "ocr", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_004", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_005_after.png", + "api_fallback": null, + "before_png": "steps/step_005_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 777, + 186 + ], + "context_text": "Jane Sample Knee pain referral High", + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 30, + "concats": [ + { + "c": "c8f3afe51e54101a", + "digit": false, + "i": 0, + "n": 10, + "name": true, + "r": "c8f3afe51e54101a", + "size": 2 + }, + { + "c": "889b7b67936cc714", + "digit": false, + "i": 0, + "n": 14, + "name": true, + "r": "889b7b67936cc714", + "size": 3 + }, + { + "c": "ec3cdd51930bbe48", + "digit": false, + "i": 0, + "n": 18, + "name": true, + "r": "012c14f98d142b52", + "size": 4 + }, + { + "c": "f568044c153a789d", + "digit": false, + "i": 1, + "n": 10, + "name": true, + "r": "f568044c153a789d", + "size": 2 + }, + { + "c": "39c3c847d0c00e09", + "digit": false, + "i": 1, + "n": 14, + "name": true, + "r": "1df7bb2273b3df1e", + "size": 3 + }, + { + "c": "70fa34d51b5f7d24", + "digit": false, + "i": 1, + "n": 22, + "name": true, + "r": "3f8bfbc445a153ce", + "size": 4 + }, + { + "c": "a489e05dc4e788cd", + "digit": false, + "i": 2, + "n": 8, + "name": true, + "r": "952951299539c02a", + "size": 2 + }, + { + "c": "a17b2d971bc7336e", + "digit": false, + "i": 2, + "n": 16, + "name": true, + "r": "b6031ab669bb21d4", + "size": 3 + }, + { + "c": "554e958767924e9f", + "digit": false, + "i": 2, + "n": 20, + "name": true, + "r": "8cb792749b8c4a26", + "size": 4 + }, + { + "c": "fb3767c825cca1e4", + "digit": false, + "i": 3, + "n": 12, + "name": true, + "r": "f8736267c1e29056", + "size": 2 + }, + { + "c": "85136127f9b54bf1", + "digit": false, + "i": 3, + "n": 16, + "name": true, + "r": "9cb6424db9c1775c", + "size": 3 + }, + { + "c": "08d9cd2536340e25", + "digit": false, + "i": 4, + "n": 12, + "name": true, + "r": "3c24468959fd3d49", + "size": 2 + } + ], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "captured_context|exact|": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|casefold": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,collapse_whitespace": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|collapse_whitespace": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|collapse_whitespace,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,casefold": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,collapse_whitespace": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "structured|exact|": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|casefold": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,collapse_whitespace": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|collapse_whitespace": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|collapse_whitespace,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,casefold": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,collapse_whitespace": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338" + }, + "structured": "f54030eb9739c951", + "structured_row": true, + "tokens": [ + { + "alpha": true, + "c": "c3f03513b97ac375", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "c3f03513b97ac375" + }, + { + "alpha": true, + "c": "9ee71e296b9f12b0", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 6, + "name": true, + "r": "9ee71e296b9f12b0" + }, + { + "alpha": true, + "c": "474017e2662aec63", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "474017e2662aec63" + }, + { + "alpha": true, + "c": "e2c9d9dd2be64c93", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "dbeb4aa0ff7e457c" + }, + { + "alpha": true, + "c": "e85574407f1c63d2", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 8, + "name": true, + "r": "e85574407f1c63d2" + }, + { + "alpha": true, + "c": "f0d7c32ddfe55ff9", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "291356604e133bf5" + } + ] + }, + "landmarks": [ + { + "distance_px": 52, + "dx_px": 21, + "dy_px": 48, + "ocr_text": "Action", + "relation": "above" + }, + { + "distance_px": 58, + "dx_px": -2, + "dy_px": -58, + "ocr_text": "Open", + "relation": "below" + } + ], + "ocr_text": "Open", + "region": [ + 697, + 154, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Open", + "role": "button", + "selector": "#open-p1", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_005.png" + }, + "old_anchor": { + "click_point": [ + 775, + 186 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 30, + "concats": [ + { + "c": "c8f3afe51e54101a", + "digit": false, + "i": 0, + "n": 10, + "name": true, + "r": "c8f3afe51e54101a", + "size": 2 + }, + { + "c": "889b7b67936cc714", + "digit": false, + "i": 0, + "n": 14, + "name": true, + "r": "889b7b67936cc714", + "size": 3 + }, + { + "c": "ec3cdd51930bbe48", + "digit": false, + "i": 0, + "n": 18, + "name": true, + "r": "012c14f98d142b52", + "size": 4 + }, + { + "c": "f568044c153a789d", + "digit": false, + "i": 1, + "n": 10, + "name": true, + "r": "f568044c153a789d", + "size": 2 + }, + { + "c": "39c3c847d0c00e09", + "digit": false, + "i": 1, + "n": 14, + "name": true, + "r": "1df7bb2273b3df1e", + "size": 3 + }, + { + "c": "70fa34d51b5f7d24", + "digit": false, + "i": 1, + "n": 22, + "name": true, + "r": "3f8bfbc445a153ce", + "size": 4 + }, + { + "c": "a489e05dc4e788cd", + "digit": false, + "i": 2, + "n": 8, + "name": true, + "r": "952951299539c02a", + "size": 2 + }, + { + "c": "a17b2d971bc7336e", + "digit": false, + "i": 2, + "n": 16, + "name": true, + "r": "b6031ab669bb21d4", + "size": 3 + }, + { + "c": "554e958767924e9f", + "digit": false, + "i": 2, + "n": 20, + "name": true, + "r": "8cb792749b8c4a26", + "size": 4 + }, + { + "c": "fb3767c825cca1e4", + "digit": false, + "i": 3, + "n": 12, + "name": true, + "r": "f8736267c1e29056", + "size": 2 + }, + { + "c": "85136127f9b54bf1", + "digit": false, + "i": 3, + "n": 16, + "name": true, + "r": "9cb6424db9c1775c", + "size": 3 + }, + { + "c": "08d9cd2536340e25", + "digit": false, + "i": 4, + "n": 12, + "name": true, + "r": "3c24468959fd3d49", + "size": 2 + } + ], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "captured_context|exact|": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|casefold": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,collapse_whitespace": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,collapse_whitespace,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|casefold,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|collapse_whitespace": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|collapse_whitespace,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,casefold": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,casefold,strip_punctuation": "05a02917cd8e13ffe911f9158935250d6b60c03075af384ac806817eefe99fa0", + "captured_context|normalized|unicode_nfkc,collapse_whitespace": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "captured_context|normalized|unicode_nfkc,strip_punctuation": "9fd083f46bf21da787072325bc4c4f55d41c35af66b3a8bfe5362801f5b79b4c", + "structured|exact|": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|casefold": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,collapse_whitespace": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|casefold,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|collapse_whitespace": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|collapse_whitespace,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,casefold": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f54030eb9739c9513a637823369916e41bf4968e9ed046f34275bd91d40d530f", + "structured|normalized|unicode_nfkc,collapse_whitespace": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338", + "structured|normalized|unicode_nfkc,strip_punctuation": "8d821561269d698e53786efe5136f65e976aa53e3a7d592e12b29615dfb99338" + }, + "structured": "f54030eb9739c951", + "structured_row": true, + "tokens": [ + { + "alpha": true, + "c": "c3f03513b97ac375", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "c3f03513b97ac375" + }, + { + "alpha": true, + "c": "9ee71e296b9f12b0", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 6, + "name": true, + "r": "9ee71e296b9f12b0" + }, + { + "alpha": true, + "c": "474017e2662aec63", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "474017e2662aec63" + }, + { + "alpha": true, + "c": "e2c9d9dd2be64c93", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "dbeb4aa0ff7e457c" + }, + { + "alpha": true, + "c": "e85574407f1c63d2", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 8, + "name": true, + "r": "e85574407f1c63d2" + }, + { + "alpha": true, + "c": "f0d7c32ddfe55ff9", + "digit": false, + "gen": false, + "glyph": false, + "idsh": false, + "n": 4, + "name": true, + "r": "291356604e133bf5" + } + ] + }, + "landmarks": [ + { + "distance_px": 52, + "dx_px": 21, + "dy_px": 48, + "ocr_text": "Action", + "relation": "above" + }, + { + "distance_px": 58, + "dx_px": -2, + "dy_px": -58, + "ocr_text": "Open", + "relation": "below" + } + ], + "ocr_text": "Open", + "region": [ + 695, + 154, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Open", + "role": "button", + "selector": "#open-p1", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_005.png" + }, + "rung_used": "ocr", + "screenshot": "heals/step_005/screen.png", + "step_id": "step_005" + }, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane SampleKnee pain referralHigh", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Open'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 777, + 186 + ], + "rung": "ocr", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_005", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_006_after.png", + "api_fallback": null, + "before_png": "steps/step_006_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 113, + 159 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3" + }, + "structured": "503fb2093ed582b9", + "structured_row": true, + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 62, + "dx_px": 34, + "dy_px": -52, + "ocr_text": "Encounters", + "relation": "below" + }, + { + "distance_px": 85, + "dx_px": 24, + "dy_px": -82, + "ocr_text": "No encounters yet.", + "relation": "below" + } + ], + "ocr_text": "New Encounter", + "region": [ + 33, + 127, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "New Encounter", + "role": "button", + "selector": "#new-encounter", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_006.png" + }, + "old_anchor": { + "click_point": [ + 114, + 159 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3" + }, + "structured": "503fb2093ed582b9", + "structured_row": true, + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 62, + "dx_px": 34, + "dy_px": -52, + "ocr_text": "Encounters", + "relation": "below" + }, + { + "distance_px": 85, + "dx_px": 24, + "dy_px": -82, + "ocr_text": "No encounters yet.", + "relation": "below" + } + ], + "ocr_text": "New Encounter", + "region": [ + 34, + 127, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "New Encounter", + "role": "button", + "selector": "#new-encounter", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_006.png" + }, + "rung_used": "ocr", + "screenshot": "heals/step_006/screen.png", + "step_id": "step_006" + }, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'New Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 113, + 159 + ], + "rung": "ocr", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_006", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_007_after.png", + "api_fallback": null, + "before_png": "steps/step_007_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 85, + 214 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3" + }, + "structured": "503fb2093ed582b9", + "structured_row": true, + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 71, + "dx_px": 44, + "dy_px": -56, + "ocr_text": "Note", + "relation": "below" + }, + { + "distance_px": 76, + "dx_px": -27, + "dy_px": 71, + "ocr_text": "New Encounter", + "relation": "above" + } + ], + "ocr_text": "Triage", + "region": [ + 5, + 182, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Triage", + "role": "button", + "selector": "#type-triage", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_007.png" + }, + "old_anchor": { + "click_point": [ + 85, + 214 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3" + }, + "structured": "503fb2093ed582b9", + "structured_row": true, + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 71, + "dx_px": 44, + "dy_px": -56, + "ocr_text": "Note", + "relation": "below" + }, + { + "distance_px": 76, + "dx_px": -27, + "dy_px": 71, + "ocr_text": "New Encounter", + "relation": "above" + } + ], + "ocr_text": "Triage", + "region": [ + 5, + 182, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Triage", + "role": "button", + "selector": "#type-triage", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_007.png" + }, + "rung_used": "ocr", + "screenshot": "heals/step_007/screen.png", + "step_id": "step_007" + }, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Triage'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 85, + 214 + ], + "rung": "ocr", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_007", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_008_after.png", + "api_fallback": null, + "before_png": "steps/step_008_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 344, + 350 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3" + }, + "structured": "503fb2093ed582b9", + "structured_row": true, + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 194, + "dx_px": 138, + "dy_px": 137, + "ocr_text": "Consult", + "relation": "left_of" + }, + { + "distance_px": 286, + "dx_px": 135, + "dy_px": 252, + "ocr_text": "Jane Sample — MRN P1 — DOB 1980-01-01", + "relation": "above" + } + ], + "ocr_text": null, + "region": [ + 104, + 254, + 480, + 192 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Note", + "role": "textbox", + "selector": "#note", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_008.png" + }, + "old_anchor": { + "click_point": [ + 344, + 350 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3" + }, + "structured": "503fb2093ed582b9", + "structured_row": true, + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 194, + "dx_px": 138, + "dy_px": 137, + "ocr_text": "Consult", + "relation": "left_of" + }, + { + "distance_px": 286, + "dx_px": 135, + "dy_px": 252, + "ocr_text": "Jane Sample — MRN P1 — DOB 1980-01-01", + "relation": "above" + } + ], + "ocr_text": null, + "region": [ + 104, + 254, + 480, + 192 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Note", + "role": "textbox", + "selector": "#note", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_008.png" + }, + "rung_used": "geometry", + "screenshot": "heals/step_008/screen.png", + "step_id": "step_008" + }, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click recorded visual target", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 0.881, + "elapsed_ms": "", + "point": [ + 344, + 350 + ], + "rung": "geometry", + "structural_handle": null + }, + "risk": "reversible", + "risk_explanation": "control label has no retained consequential-write signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_008", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": null, + "after_png": "steps/step_009_after.png", + "api_fallback": null, + "before_png": "steps/step_009_before.png", + "delivery_attempted": true, + "delivery_receipt": null, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": null, + "identity": null, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": true, + "intent": "type ", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": null, + "program_scope": [], + "resolution": null, + "risk": "reversible", + "risk_explanation": "action has no retained consequential commit signal", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_009", + "submit_binding_verified": null, + "timings": "" + }, + { + "actuation": "guarded_coordinate", + "after_png": "steps/step_010_after.png", + "api_fallback": null, + "before_png": "steps/step_010_before.png", + "delivery_attempted": true, + "delivery_receipt": { + "delivered_at": "", + "native": false, + "operation": "guarded_coordinate_click", + "outcome_verified": false, + "receipt_id": "", + "status": "delivered", + "target_fingerprint": "" + }, + "delivery_uncertainty": null, + "drag_end_resolution": null, + "drift_oracle_calls": 0, + "effect_approved_unverified": false, + "effect_contract_hashes": [], + "effect_evidence": [], + "effect_results": [], + "effect_verified": null, + "elapsed_ms": "", + "error": null, + "exception_handled": false, + "failure_category": null, + "field_read": null, + "fresh_actuation_events": [], + "heal": { + "applied": true, + "kind": "anchor_refresh", + "new_anchor": { + "click_point": [ + 134, + 457 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3" + }, + "structured": "503fb2093ed582b9", + "structured_row": true, + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 210, + "dx_px": 94, + "dy_px": 188, + "ocr_text": "Note", + "relation": "above" + }, + { + "distance_px": 254, + "dx_px": -72, + "dy_px": 244, + "ocr_text": "Consult", + "relation": "above" + } + ], + "ocr_text": "Save Encounter", + "region": [ + 54, + 425, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Save Encounter", + "role": "button", + "selector": "#save-encounter", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_010.png" + }, + "old_anchor": { + "click_point": [ + 134, + 457 + ], + "context_text": null, + "form_identity": null, + "identifier_crop": null, + "identifier_region": null, + "identity_template": { + "band_len": 0, + "concats": [], + "param_token_indices": {}, + "rests_on_confusable_identifier": false, + "salt": "9588ca8dd8f70661010db0bc535ec9bf", + "schema_version": 1, + "signal_hashes": { + "structured|exact|": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,casefold": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace": "503fb2093ed582b9b541f011a9a4a385869a623f3abb1a9a48cc74dfa3228627", + "structured|normalized|unicode_nfkc,casefold,collapse_whitespace,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,casefold,strip_punctuation": "f0fd40595afc38e7633e42e23ca5d6b4f062fdbfecea41942112656a350e68eb", + "structured|normalized|unicode_nfkc,collapse_whitespace": "f189545cc4d03ef9477287fe81be842ac1cdf27732e907d82e62f792457f7f50", + "structured|normalized|unicode_nfkc,collapse_whitespace,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3", + "structured|normalized|unicode_nfkc,strip_punctuation": "a08db70cad85ce9f925fa222da36213dbd747b8a7ed691c967ceabab72c9cba3" + }, + "structured": "503fb2093ed582b9", + "structured_row": true, + "tokens": [] + }, + "landmarks": [ + { + "distance_px": 210, + "dx_px": 94, + "dy_px": 188, + "ocr_text": "Note", + "relation": "above" + }, + { + "distance_px": 254, + "dx_px": -72, + "dy_px": 244, + "ocr_text": "Consult", + "relation": "above" + } + ], + "ocr_text": "Save Encounter", + "region": [ + 54, + 425, + 160, + 64 + ], + "search_pad": 80, + "structural": { + "automation_id": null, + "frame_path": null, + "name": "Save Encounter", + "role": "button", + "selector": "#save-encounter", + "window_name": null + }, + "structured_identity": null, + "template": "templates/step_010.png" + }, + "rung_used": "ocr", + "screenshot": "heals/step_010/screen.png", + "step_id": "step_010" + }, + "identity": { + "abstain_reason": null, + "candidate_count": 1, + "coverage": 1.0, + "expected": "", + "hover": null, + "known_id_evidence": null, + "known_id_halt": null, + "look_halt": null, + "looks": [], + "mode": "structured", + "observed": "Jane Sample — MRN P1 — DOB 1980-01-01", + "param": null, + "pixel_evidence": null, + "quorum_required": null, + "quorum_verified": null, + "signal_evidence": [], + "status": "verified" + }, + "identity_first_frame_png": null, + "identity_first_read": null, + "identity_reobserved": false, + "input_retried": false, + "input_verified": null, + "intent": "click 'Save Encounter'", + "interstitial_actions": [], + "ok": true, + "postcondition_drift_rescues": [], + "postcondition_page_scale": null, + "postconditions_ok": true, + "program_scope": [], + "resolution": { + "confidence": 1.0, + "elapsed_ms": "", + "point": [ + 134, + 457 + ], + "rung": "ocr", + "structural_handle": null + }, + "risk": "irreversible", + "risk_explanation": "retained action context names a consequential state change", + "risk_review_required": false, + "safety_halt": false, + "safety_refusal_evidence": null, + "skipped": false, + "starting_state_settled": null, + "step_id": "step_010", + "submit_binding_verified": null, + "timings": "" + } + ], + "run_id_sha256": "", + "rung_counts": { + "geometry": 3, + "ocr": 5 + }, + "screenshots_may_leave_box": false, + "source_recording_sha256": null, + "started_at": "", + "success": true, + "surface_override": false, + "terminal_outcome": null, + "total_ms": "", + "transaction_billable": false, + "transaction_outcome": "COMPLETED_UNVERIFIED", + "transaction_platform_fault": false, + "visited_states": [], + "workflow_contract_sha256": "4e2641e241b18190da19e426f9e5890d6f8dcca4e49ce544d924f2b521f4e681", + "workflow_name": "golden-triage" + }, + "trace": [ + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + }, + { + "args": [ + 214, + 195 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "nurse.demo" + ], + "call": "type_text" + }, + { + "args": [ + 214, + 264 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "mockmed-demo-pass" + ], + "call": "type_text" + }, + { + "args": [ + 120, + 324 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 777, + 186 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 113, + 159 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 85, + 214 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + 344, + 350 + ], + "call": "click", + "kwargs": { + "double": false + } + }, + { + "args": [ + "Golden triage booking three months" + ], + "call": "type_text" + }, + { + "call": "cancel_pending_structural_guards" + }, + { + "args": [ + 134, + 457 + ], + "call": "arm_guarded_coordinate" + }, + { + "call": "cancel_guarded_coordinate" + }, + { + "args": [ + 134, + 457 + ], + "call": "act_guarded_coordinate", + "kwargs": { + "double": false, + "expected_frame_sha256": "e1279f4bc5f9d5aed67409a63ea016fed425884ebbbfdd314f0d19503820e6f4" + } + }, + { + "args": [ + null + ], + "call": "set_qualification_input_guard" + } + ] +} From 399ec86d9cc9308ee78e9ccb52d4c7b5e6e28fdc Mon Sep 17 00:00:00 2001 From: abrichr Date: Tue, 3 Nov 2026 15:47:04 -0500 Subject: [PATCH 13/17] Revert "ci(flow): TEMPORARY write the Linux golden baselines" This reverts commit 38813572feb642017bdb34e10590cecf76306db7. --- .github/workflows/packages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 710022b90d..b330035b16 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -642,7 +642,6 @@ jobs: # One process: the scenarios share one MockMed server per module. env: OPENADAPT_GOLDEN_OUT: runs/golden - OPENADAPT_GOLDEN_WRITE: "1" # TEMPORARY: Linux baselines; reverted before review run: | pytest -vv --durations=20 tests/golden_runs \ --basetemp=runs/ci-goldens --junitxml=runs/goldens-junit.xml From 5d4c82b550dcbc8f7b1171b3bf44b73299d28c85 Mon Sep 17 00:00:00 2001 From: abrichr Date: Tue, 3 Nov 2026 17:01:54 -0500 Subject: [PATCH 14/17] ci(flow): install coverage from the CI tools lock; list the golden baselines flow-coverage now installs coverage 7.15.1 (the version packages/flow/uv.lock pins) from .github/ci-tools/uv.lock with hashes, as tests/test_ci_locked_installs.py requires. public-artifacts.json lists the committed golden baselines (regenerated with --write-public-artifact-inventory). --- .github/ci-tools/pyproject.toml | 3 + .github/ci-tools/uv.lock | 107 ++++++++++++++++++++++++++++ .github/workflows/packages.yml | 9 ++- packages/flow/public-artifacts.json | 34 ++++++++- 4 files changed, 150 insertions(+), 3 deletions(-) diff --git a/.github/ci-tools/pyproject.toml b/.github/ci-tools/pyproject.toml index c3f6609fa1..4c027f264e 100644 --- a/.github/ci-tools/pyproject.toml +++ b/.github/ci-tools/pyproject.toml @@ -16,6 +16,9 @@ test = ["pytest>=9.1.1", "packaging>=25.0"] build = ["build>=1.6.1", "pip>=25.3"] pip = ["pip>=25.3"] lint = ["ruff==0.17.0"] +# Combines the flow-unit shards' coverage data (flow-coverage in packages.yml); +# keep it at the version packages/flow/uv.lock pins, so the data format matches. +coverage = ["coverage[toml]==7.15.1"] release = ["build>=1.6.1", "twine>=7.0.0"] [tool.uv] diff --git a/.github/ci-tools/uv.lock b/.github/ci-tools/uv.lock index 6dff24fe35..ebdcb0a6d4 100644 --- a/.github/ci-tools/uv.lock +++ b/.github/ci-tools/uv.lock @@ -268,6 +268,109 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] +[[package]] +name = "coverage" +version = "7.15.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4a/83/6051c2a2feab48ae5bd27c84ef047191d2d4a3172f689e38eaa48ed17db1/coverage-7.15.1.tar.gz", hash = "sha256:165e9949eaf222ef1f018635d0d7f368a23bfe0212af558534c40d8c04686d67", size = 927640, upload-time = "2026-07-12T20:58:19.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/76/eef242d6bb95fb737fefd9bbf3a318897e4e82cf543b53a61c2a6e8588eb/coverage-7.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:05d87c2a43373ad6b976d0a99ad58c48633633bcdeb896dc645a006472cc4a71", size = 221195, upload-time = "2026-07-12T20:55:55.82Z" }, + { url = "https://files.pythonhosted.org/packages/89/73/41cd50da59d513a30fd3a34b5516b962ac17514defdb6705948446a5c0b1/coverage-7.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2afce82f2cf8f4c9002746a42755e1dc61baff33d9f7ab5569b4c9101f8f4d1d", size = 221714, upload-time = "2026-07-12T20:55:58.104Z" }, + { url = "https://files.pythonhosted.org/packages/22/9d/6df6ac6677719a087c839208186525b7b1f3653c50196c43246482ada65e/coverage-7.15.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0a545ef5384d787d0fcac6c349afc2c5f99dcc39e13ed3c191b2c06305f64c04", size = 248454, upload-time = "2026-07-12T20:55:59.336Z" }, + { url = "https://files.pythonhosted.org/packages/9f/f5/86f92c429fbf942986d01c3bb7b0b6c3ad06b09f7fa745023877413dde83/coverage-7.15.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:afaa144b8f5b3bc69fe0ce50d401c46b01ab264782553bfd05a3f98804524ecb", size = 250282, upload-time = "2026-07-12T20:56:00.589Z" }, + { url = "https://files.pythonhosted.org/packages/47/c6/99d0f1c1dd1583aaf8c1deca447e44426be54a76027a8c55e29970f22b15/coverage-7.15.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1b6099490e5f88569c46b18605f556c3b30acc9a0a219cf7ef8fab8f7161ec4", size = 252149, upload-time = "2026-07-12T20:56:01.853Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c3/5d30740ec96f5fd8a659e46b6ee9224197f87aa66ce4a20e93dcf46221ac/coverage-7.15.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bb5f6c2cf1ffd0bf2bd925c7cdcae9b4f208e9696d453ed51eb1f5fa0cc5b45b", size = 254061, upload-time = "2026-07-12T20:56:03.277Z" }, + { url = "https://files.pythonhosted.org/packages/71/e5/3afb2950673ca6cd22bc9ad6a9d6058c853bef8fe27a6d1df3adc274fd88/coverage-7.15.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:81572011fc1fc271317da35da593944daef7bfd507085e35751abbe702b74f69", size = 249152, upload-time = "2026-07-12T20:56:04.618Z" }, + { url = "https://files.pythonhosted.org/packages/ca/53/25ab3c0a7cf517ed4d30cd4dd82331e005d4b57fec8c19c0ffd94fb50baa/coverage-7.15.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8f765d13c08497687d0780cca66115c6aa4ba6703ad43b61e94fab9db689e3a3", size = 250187, upload-time = "2026-07-12T20:56:06Z" }, + { url = "https://files.pythonhosted.org/packages/ad/2a/8afb5f994e26e919e5dca5164f1c7b6b7ce6090aab1aac32b1ae1782f047/coverage-7.15.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:771caba880fee96493d18dfc465c318e08ab74e3bc2a3e4089e52514be6a6e54", size = 248193, upload-time = "2026-07-12T20:56:07.376Z" }, + { url = "https://files.pythonhosted.org/packages/d4/62/b6616e15288c9a7b628f7745e832fd8af2c03ec1f7dc11da25947f5ab16f/coverage-7.15.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:433a73200848e80f27712fc113b6ff5311f29b479a7d3bd4b1106138a77f9674", size = 252004, upload-time = "2026-07-12T20:56:08.787Z" }, + { url = "https://files.pythonhosted.org/packages/9e/21/5d80d65e4df3018dedb23a44f276f20ce26e429ffd76df03de03bcf9a767/coverage-7.15.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:5d6fa45079db9fbeba0a69e3d91189f05301d6ac918162a53179d32fc9ed4910", size = 248463, upload-time = "2026-07-12T20:56:10.245Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/04a22708691561c44d77e1d5a60857b351310fdfbf253533780bb31c8b6f/coverage-7.15.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:00b6703c6640075cdce5124e9335dfdf9167272475301828acfdd09c0e5ee731", size = 249064, upload-time = "2026-07-12T20:56:11.614Z" }, + { url = "https://files.pythonhosted.org/packages/82/c9/a5c1e8954e657559de478acc1ef73e9393d3fc9b4a2ab4427501d765aca2/coverage-7.15.1-cp310-cp310-win32.whl", hash = "sha256:3ad9a0eac4728327fd870d52f74d2e631d176c5f178eaea2d9983ab5b9755a55", size = 223248, upload-time = "2026-07-12T20:56:13.068Z" }, + { url = "https://files.pythonhosted.org/packages/54/49/5f6566e14611a58e93a926f3a8a7b22e4e0702ebb4c467ac38f452c7f4cf/coverage-7.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:eb5fa75dc3d30e3a1b75da97973479b20ffa9b0641ff56d6e94b5f3e210daa54", size = 223874, upload-time = "2026-07-12T20:56:14.396Z" }, + { url = "https://files.pythonhosted.org/packages/67/ee/5095e07a0986930174fc153fd0bb115f7f2724f5344cc672e016d4f23a4e/coverage-7.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6506330b4a8dcf53b95bd84d8d0e817107cdb3fc1438e835029cdf0bc6612eb0", size = 221320, upload-time = "2026-07-12T20:56:16.036Z" }, + { url = "https://files.pythonhosted.org/packages/43/7a/7e2598ce98433a214020a61c0755d5961f9f26df0c630dc73e06b86d3416/coverage-7.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8a51a8ec382c39d939cba0ab07ae949077ae4e842343bd4eed22d432358cea9", size = 221823, upload-time = "2026-07-12T20:56:17.54Z" }, + { url = "https://files.pythonhosted.org/packages/8b/4f/67dac6a69139b490a239d91b6d5ef127982ffb89159769241656ab879ee5/coverage-7.15.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:18ea20e3922d7f8ca9e0ef1084408d08c4ad62d5e531cb9c1f6896a99297ebea", size = 252242, upload-time = "2026-07-12T20:56:18.868Z" }, + { url = "https://files.pythonhosted.org/packages/05/37/5e439725a96de592309725550c8df639c359c209dcb4b152ed46032d4c0d/coverage-7.15.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:aab9902a64b8390e3b56e539fddae1d79a267807fe5cb0c18d7d2f544ce867e2", size = 254153, upload-time = "2026-07-12T20:56:20.118Z" }, + { url = "https://files.pythonhosted.org/packages/0f/1c/671ba9e15f9651a99962fb588a1fe4fb267cae4bb85f9bb4ac4413c6f7ef/coverage-7.15.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cc316264317b07a9e90d7f2b4188a15e36e9b54e651081b791b0515fa612a29", size = 256261, upload-time = "2026-07-12T20:56:21.682Z" }, + { url = "https://files.pythonhosted.org/packages/d6/3c/88305322b4d015b4536b7174b8f9b87f850f01af9d89008cdbf984b65ff2/coverage-7.15.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d4e47e7eea81a8ccf060a07627654151d929da62c7b715738387c200905cec89", size = 258222, upload-time = "2026-07-12T20:56:22.962Z" }, + { url = "https://files.pythonhosted.org/packages/8d/20/d02e42333a57f266ded61ed4fb3821da1f2dc143734aaa3dcc9c117204c5/coverage-7.15.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c6829d9a3b55ad2b73ef5fda8302e5be03683789e88b1a079dcf4a773229c21d", size = 252368, upload-time = "2026-07-12T20:56:24.475Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d0/94ebc010926a191d83e83b1f1236f8bd0d14d0eb98b5c324aa4be2589a8e/coverage-7.15.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:764e045811f9c8cda436641f3f088283351d331a519b5807f19041cd0a68da1c", size = 253953, upload-time = "2026-07-12T20:56:26.036Z" }, + { url = "https://files.pythonhosted.org/packages/2e/a6/2c8553191da0c2da2c43ff294fb9bab57a5b0fae03560304a82a8b5addc3/coverage-7.15.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:09b3b088aa24489c4082bcc35fcc8224281ab94a653dfb6d3f0c8165b0d628ab", size = 252016, upload-time = "2026-07-12T20:56:27.374Z" }, + { url = "https://files.pythonhosted.org/packages/17/99/20f47986d8360fa1a31d9858dd2ba0be009d44ecfa8d02120b1eb93c028b/coverage-7.15.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7911b02f57053adf8164ae63edb1c26574d24dfccabadc5268cf69310a69a358", size = 255783, upload-time = "2026-07-12T20:56:28.921Z" }, + { url = "https://files.pythonhosted.org/packages/17/36/fb61983b5259f78fa5e62ee74e91fe4de4c556fcbc9a3b9c9021c2f8b57b/coverage-7.15.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:664e279ed40599b8ed16f4db18d92a7e212c73129672bec8f5d96d4da48d2404", size = 251735, upload-time = "2026-07-12T20:56:30.465Z" }, + { url = "https://files.pythonhosted.org/packages/6c/2e/d109d8d2d6c726ba2e78125297073918a2a91464f0ea777e5398fa3cf75c/coverage-7.15.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:34fe7cf79d5f1f87f2e8ce7dc1c32950841f50e10d0120f263856acfad66de34", size = 252645, upload-time = "2026-07-12T20:56:32.076Z" }, + { url = "https://files.pythonhosted.org/packages/bc/a0/5b3219cbb46135e14673427f2bf5890c4da4e6f655243692f3448aa3f42c/coverage-7.15.1-cp311-cp311-win32.whl", hash = "sha256:5e2d2536d2f57a354aa382ed303ac0e2e5c9522a508c05b998d26181b94163a7", size = 223414, upload-time = "2026-07-12T20:56:33.432Z" }, + { url = "https://files.pythonhosted.org/packages/5b/80/24e13ade0b6df8090e2492f9c55044bf1423f7ef28c76fc1af8c827a61cb/coverage-7.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:c337da8fca7ea93ab43f3868cfcde6cf6dad32c3906b273cfbad5d7390bc423b", size = 223888, upload-time = "2026-07-12T20:56:34.784Z" }, + { url = "https://files.pythonhosted.org/packages/2d/9e/34659930ae380491af48e2f5f5f9a2e99cd9fb7de3d30f27be5ac5425137/coverage-7.15.1-cp311-cp311-win_arm64.whl", hash = "sha256:db3403fdb7a94d5eb73e099befad8104d2a7d110a0f0d99df0de61c5d1fa756c", size = 223435, upload-time = "2026-07-12T20:56:36.302Z" }, + { url = "https://files.pythonhosted.org/packages/d9/76/32c1826309beaf4604c54accef108fdd611e5e5e93f2f5192f050cd5f6bd/coverage-7.15.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d9476292594309db922cc841dd13b303b3c388f4c25d279884f7e2341c681f80", size = 221497, upload-time = "2026-07-12T20:56:37.628Z" }, + { url = "https://files.pythonhosted.org/packages/db/5c/b88ce0d68fa550c7f3b58617fbf363bce64df5bf8295a01b627e4696e022/coverage-7.15.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0c579056b0de461b3a62318b63d0b6ce90aed7f8158d3f00da094df82f29d189", size = 221854, upload-time = "2026-07-12T20:56:39.033Z" }, + { url = "https://files.pythonhosted.org/packages/0e/fe/8509fd2a66fc4e0a829f76a0f0b1dc3cc163368352435b5f243168658077/coverage-7.15.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:23214bdbe226f2b0e9c66a7d6a1d59d4a88045dcf86e702cf0fe0d0935e3d615", size = 253359, upload-time = "2026-07-12T20:56:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/e5/81/c7009ed7ea9765adb2b9d095054d748266fae5f07ac6c5f925f33715fcde/coverage-7.15.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:df164be93b46b4825cc39339440a05edc54c4d1d865ba4a60fd43d151a2a1cd3", size = 256096, upload-time = "2026-07-12T20:56:42.115Z" }, + { url = "https://files.pythonhosted.org/packages/21/52/dc8ee03968a5ba86e2da5aa48ddc9e3747bd65d63825fdce2d96acb9c5ff/coverage-7.15.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a524fca1a6f08927d9dc2d4c873cfb7bd7202c247f08b14bdc02424071b8b304", size = 257211, upload-time = "2026-07-12T20:56:43.513Z" }, + { url = "https://files.pythonhosted.org/packages/b8/27/95d7623908da8937deb53d48efcdbf423907a47540e63c62fa21372c652b/coverage-7.15.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d70f3542cd38de85a9e257dcb1ac4c1ab4b6d7d2c2a645809207556628755d1c", size = 259473, upload-time = "2026-07-12T20:56:44.974Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3b/730d761928de97d585465680b568ae69622fb40716babadeabffe75cb51b/coverage-7.15.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d78aa537237212c4313aabe5e964b66acc86350ed19ebc56a3e202df33b6077b", size = 253759, upload-time = "2026-07-12T20:56:46.615Z" }, + { url = "https://files.pythonhosted.org/packages/f1/fc/6b9277acff1f9484b6c12857af5774689d1a6a95e13265f7405329d2f5da/coverage-7.15.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a318112bb4f79d9d04766196d5a3388caa825908a6a9b052aa87de3d9aea7c61", size = 255131, upload-time = "2026-07-12T20:56:48.073Z" }, + { url = "https://files.pythonhosted.org/packages/3d/f2/c704f86129594ba34e25a64695d2068c71d51c2b98907184d716c94f4aec/coverage-7.15.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e55d24cada901963eed5bc89fa562aa033f0d84b9d3de4ecf363737c13aed11e", size = 253275, upload-time = "2026-07-12T20:56:49.538Z" }, + { url = "https://files.pythonhosted.org/packages/f6/29/80fee8af47de4a6dce71ccf2938491f444687a756af258a56d8469b8f1b0/coverage-7.15.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3c78f0cea7275342cf2adc2ad5fdd0aafa106ad91e66d573568f2fcf62c41df5", size = 257345, upload-time = "2026-07-12T20:56:51.038Z" }, + { url = "https://files.pythonhosted.org/packages/20/21/a1e7d7ed1b48a8adf8fd5154d9e83fcc5ad8e6ff20ae00e44865057dce8d/coverage-7.15.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:86bd37eabe39977216f630a7fc1b698e7f5e81a191c7186013245c6c3d313f9d", size = 252844, upload-time = "2026-07-12T20:56:52.535Z" }, + { url = "https://files.pythonhosted.org/packages/a7/8c/a4bc26e6ee207d412f3678f04d74be1550e83140563ca0e4997510579712/coverage-7.15.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c6db15c217693bdc3ca0b84de1ba9afafe1c14c26a8a29d77f4ed0de2b6132e2", size = 254716, upload-time = "2026-07-12T20:56:53.968Z" }, + { url = "https://files.pythonhosted.org/packages/11/9d/8ad0266ecfada6353cf6627a1a02294cf55a907521b6ee0bd7b770cfd659/coverage-7.15.1-cp312-cp312-win32.whl", hash = "sha256:359f3fbe09a51500c51966596ee4ee4070b356552c70b3b2420eb200d68e0f76", size = 223554, upload-time = "2026-07-12T20:56:55.583Z" }, + { url = "https://files.pythonhosted.org/packages/81/6d/24224929e06c6e05a93f738bc5f9e8e6ab658f8f1d9b823e7b85430e28b8/coverage-7.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:fa75dc099c126e941a9c0baa8ebd2cbc78bd778687534fe410baf754f6d9e374", size = 224087, upload-time = "2026-07-12T20:56:57.041Z" }, + { url = "https://files.pythonhosted.org/packages/35/23/f81441dd01de88e53c97842e706907b307d9078918c3f4998b11e9ac7250/coverage-7.15.1-cp312-cp312-win_arm64.whl", hash = "sha256:26f89cf6d0634375f454fa71057945ad18edb0f1607a90fecf22c57dc3dc289a", size = 223472, upload-time = "2026-07-12T20:56:58.594Z" }, + { url = "https://files.pythonhosted.org/packages/ca/1e/6fa289d7993a2a39f1b283ddb58c4bfec80f7800be654b8ba8a9f6a07c63/coverage-7.15.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:71ac4ca1658ca99160fd58cc6967110e989c34b04627f24ed6ec9f70fb24571a", size = 221519, upload-time = "2026-07-12T20:57:00.081Z" }, + { url = "https://files.pythonhosted.org/packages/6f/e1/0db4902a0588234a70ab0218073c0b20fbc5c740aa35f91d360160a2ebc9/coverage-7.15.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:26a40cbf2b13bd94af53ee02a424cb3bb96a9edfac0d00834bd068512a62714b", size = 221895, upload-time = "2026-07-12T20:57:01.867Z" }, + { url = "https://files.pythonhosted.org/packages/b4/cb/3719783865092dac5e08df842730305ee9ab1973ae7ddb6fbdf27d401f30/coverage-7.15.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f4c5a5eff4ad4f9f7088fd3fc7a66d98d06566ee294b3b053309fb0a3b45be1e", size = 252882, upload-time = "2026-07-12T20:57:03.459Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5e/caf3abbdbb22629626160ffc9c017eb995b7cb11c0be46b974834cef1792/coverage-7.15.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:962aa56c1c9b016d681265880eb6acc9966029d2c4c559319cc43a1abbb9b59a", size = 255479, upload-time = "2026-07-12T20:57:04.984Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f1/d60f375bfe095fef944f0f19427aefdbf9bdd5a9571c41a4bf6e2f5fdb81/coverage-7.15.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1678eb2dc57a8ce67601b029582ef6d41e9e6ca22692aaeccd4107e40f27386c", size = 256715, upload-time = "2026-07-12T20:57:06.446Z" }, + { url = "https://files.pythonhosted.org/packages/d7/17/8b0cbc90d02dc5adad4d9034c1824ec3fa567771b4c39d9c1e3f9b1431b8/coverage-7.15.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1174900a43f6f8c425fee10d7dbddc308adefcdc78aaced32357f5ab750a0e90", size = 258845, upload-time = "2026-07-12T20:57:08.092Z" }, + { url = "https://files.pythonhosted.org/packages/92/29/c5e69f5fb75c322e9a3e4ef64d02eebfc3d66efceccc8514ff80a3c13a56/coverage-7.15.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:98847557a6859cadf693792ce89f440cb89692993f60dc6d3a7e35f3d340216f", size = 253098, upload-time = "2026-07-12T20:57:09.636Z" }, + { url = "https://files.pythonhosted.org/packages/64/57/21144252fdd0c01d707d48fbcea13a80b0b7c42ced3f299f885ab8978c3a/coverage-7.15.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8697b2edb57143546a24389efc11e1b000cd5800fc20d84f04edb601e4a7cfb8", size = 254844, upload-time = "2026-07-12T20:57:11.141Z" }, + { url = "https://files.pythonhosted.org/packages/59/2a/499a28a322b0ce6768328e6c5bb2e2ad00ac068a7c7adb2ecd8533c8c5d9/coverage-7.15.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6827ac0519be3fe91bf96b4060eb00d1d24f82649b29862cd75a3cfca248b02a", size = 252807, upload-time = "2026-07-12T20:57:12.678Z" }, + { url = "https://files.pythonhosted.org/packages/2c/6f/928a95da5da8b60f2b00e1482c7787b3316188e6d2d227fb8e124ada43a1/coverage-7.15.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2de8ecbbc77c7e4d22572779920ed8979c69168675e96be3a548c996568c6c31", size = 256965, upload-time = "2026-07-12T20:57:14.326Z" }, + { url = "https://files.pythonhosted.org/packages/16/10/889adbc1b8c9f866ed51e18a98bcafc0259fb9d29b81f50a719407c64ea8/coverage-7.15.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2b25f0f0fa5260df9d7bb55d47c8bdc23fa3382c1a18f7c9cae122e6c320b1ad", size = 252628, upload-time = "2026-07-12T20:57:15.892Z" }, + { url = "https://files.pythonhosted.org/packages/1a/30/a5e1871e5d93416511f8e359d1ccebfe0cbb050a1bbf7dd20228533ec0cf/coverage-7.15.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a2effcbd93ae340a58db718fe4181d967f84d352c4cefeaab4ff82ce813901a", size = 254399, upload-time = "2026-07-12T20:57:17.703Z" }, + { url = "https://files.pythonhosted.org/packages/2d/26/c36fbffd549dadbdd1a75827528fb00a4c46aa3187b007b750b1e2cebbf2/coverage-7.15.1-cp313-cp313-win32.whl", hash = "sha256:895e65c96aef0cecea250f6e35e9a32f11375514e1a0cb5210e0fda128c04e8e", size = 223564, upload-time = "2026-07-12T20:57:19.253Z" }, + { url = "https://files.pythonhosted.org/packages/16/fc/becbb9d2c4206d242b9b1e1e8e24a42f7926c0200dd3c788b9fab4bb96d5/coverage-7.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6d0a28b63a0d75f9ed5118105d1154fc3aa40a8605a30d5d87e3d043ad90fe7", size = 224106, upload-time = "2026-07-12T20:57:21.108Z" }, + { url = "https://files.pythonhosted.org/packages/d3/30/1cfc641461369b6858799fca61c0a8b5edc490c519bf7c636ffa6bbf556f/coverage-7.15.1-cp313-cp313-win_arm64.whl", hash = "sha256:b4ee9818e8bae3544379ad2c09b851c4fb886aaa8860d57a1c1316ddcb16db49", size = 223497, upload-time = "2026-07-12T20:57:22.734Z" }, + { url = "https://files.pythonhosted.org/packages/f0/46/81961952e7aebfb38ad0ae4264e8954cc607a7af9e7ac111f9fa986595cc/coverage-7.15.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a886af95f59edf67d5770fd3564d53f4a8af93f25f8c1d60d27e00d7f5674ee8", size = 221560, upload-time = "2026-07-12T20:57:24.282Z" }, + { url = "https://files.pythonhosted.org/packages/13/d2/ee14d715889f216baf47301d9f469e08fff6995552aaf67e897b282865f6/coverage-7.15.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:985657ebd707941de90d488d1cbb5efac20bdf81f7b91eba771624ccda4d36f4", size = 221894, upload-time = "2026-07-12T20:57:25.87Z" }, + { url = "https://files.pythonhosted.org/packages/f3/38/f830bc6e6c2c5f23f43847125e6c650d378872f7eeba8d49f1d42193e8a9/coverage-7.15.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5bbe2a06e0a5e1404d9ffbdb49b819bbd6a3bb198ebea4c8dfe7ad9f1e1c2e81", size = 252938, upload-time = "2026-07-12T20:57:27.506Z" }, + { url = "https://files.pythonhosted.org/packages/e1/53/0d3dd963631259d794c898735d5436e68d6a8d40749c419a07ff7c171469/coverage-7.15.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bde0fe24083d0b7b3dbafa7a09f0796410af1afa2523f28f5f208d8340a4aaca", size = 255445, upload-time = "2026-07-12T20:57:29.234Z" }, + { url = "https://files.pythonhosted.org/packages/b1/fd/aabed228557565c958259251b89bab8c5669b31291fa63b3e2154ebb017a/coverage-7.15.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f89f7453d6d46db14cf233e2cd8edcd78de2b9c49d4f1dc109590b4e5dbfbb74", size = 256790, upload-time = "2026-07-12T20:57:30.826Z" }, + { url = "https://files.pythonhosted.org/packages/bc/aa/1cc888e5d3623e603c4e5399653cb25728bb2b40d7519188a3e293d24620/coverage-7.15.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cc3656c9ecc27b36bd0907455b77f83c0069ca9ad4a66dec892b76c696eb6047", size = 259104, upload-time = "2026-07-12T20:57:32.63Z" }, + { url = "https://files.pythonhosted.org/packages/5f/61/fc16d5f5e53098dae41efa21e8ccc611a9b4fe922750dd03dc56db552182/coverage-7.15.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:24d8e85a2a45e44883b488c2659f51fa761dad5353fdb319b672a93facbd2ca9", size = 252956, upload-time = "2026-07-12T20:57:34.316Z" }, + { url = "https://files.pythonhosted.org/packages/a1/f3/52384668c3de4519ca770bf1975a89e4d6eb5aa2faf0da0577a14008cba4/coverage-7.15.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:68931b5fe746ed4fdaa8892989cab9e6c35781eeb3b0ab2ded893d561e1b3652", size = 254797, upload-time = "2026-07-12T20:57:35.947Z" }, + { url = "https://files.pythonhosted.org/packages/ce/68/54b807e7c1868178e902fd8360b5d4e559394462f97285c50edf1c4608db/coverage-7.15.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:1ce6947e2a95534ecaa5a15e73c21e550514c980d80eda204d064d789a95f6a4", size = 252762, upload-time = "2026-07-12T20:57:37.856Z" }, + { url = "https://files.pythonhosted.org/packages/7b/48/dde8adf0338e3ace738757dccf1ce817e5fdcadfae77e1b48a77e5a3b265/coverage-7.15.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:841befdbc89b9c82435fc25b0f4f41858b6238693e45af758bec4cfc1968171c", size = 257037, upload-time = "2026-07-12T20:57:39.488Z" }, + { url = "https://files.pythonhosted.org/packages/07/f2/179dd88cf60a0aeeee16a970ffe250dccea8b80ed4beab4c5d3f6c41ad4b/coverage-7.15.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:5d3de58b837375e7f4c0e1a088ccab5f655efb2fd7427b729df02c862a559633", size = 252577, upload-time = "2026-07-12T20:57:41.363Z" }, + { url = "https://files.pythonhosted.org/packages/2c/37/8a593d69ab521beb6a105a2017cac4ba94425ee0a8349e29c3c0b522d24f/coverage-7.15.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b1801963f9f44ae0c0f6d737bc7aeb2bbcde7d1fe7e3b43cddc1961af42d3b41", size = 254235, upload-time = "2026-07-12T20:57:43.025Z" }, + { url = "https://files.pythonhosted.org/packages/6d/34/bc9b3bced66f2cdad4bf5e57ae51c54ea226e8aaaebfc9370a9a11877bf3/coverage-7.15.1-cp314-cp314-win32.whl", hash = "sha256:8c7953c4128ef53b6ffb5f90d87c87d4ce26731df294760bb2314eb0e069e44b", size = 223771, upload-time = "2026-07-12T20:57:44.662Z" }, + { url = "https://files.pythonhosted.org/packages/4c/f3/4d20337bed61915d14349e62b88d5e4144d5a9872b64adbe90e9906db6db/coverage-7.15.1-cp314-cp314-win_amd64.whl", hash = "sha256:6f0bab60a582d415f0fb535ccff13ba334a47a1538f98913330a525d23bd535a", size = 224257, upload-time = "2026-07-12T20:57:46.412Z" }, + { url = "https://files.pythonhosted.org/packages/7b/df/bbfeae4948f3ded516f92b32f2d57952427fc5ecfc0924487bb6ee6a5f38/coverage-7.15.1-cp314-cp314-win_arm64.whl", hash = "sha256:0f410ee8f0ac4ec7db71bc0b7632a8b9994e1cad2755bd1566c17e6a162caa74", size = 223683, upload-time = "2026-07-12T20:57:48.106Z" }, + { url = "https://files.pythonhosted.org/packages/35/65/0b431856064e387d1f5cf474625e4a0465e907024d42f35de6af19ced0be/coverage-7.15.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:fc868bab88e049d41fcd41766810d790a8b960053be2a45e060f5ce0d31d258b", size = 222298, upload-time = "2026-07-12T20:57:49.882Z" }, + { url = "https://files.pythonhosted.org/packages/a6/96/50eac9bd49df8a3df5f3d38746d1bf332299dffb554486c94ebd55c9dc49/coverage-7.15.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:206d4ec6028f2773b40932d09f074539d6bcdd8f6b318d40cb04bdbd68ed0b49", size = 222561, upload-time = "2026-07-12T20:57:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/e0/5b/6ba1c4a27e10b8816fd2622b98162c83d3bdf1185097360373611bf96364/coverage-7.15.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:620482ef1c9f4e61f962e159325fe77dea59d16e39d9c9470d069053b244d864", size = 263923, upload-time = "2026-07-12T20:57:53.392Z" }, + { url = "https://files.pythonhosted.org/packages/e4/59/fe03ade97a3ca2d890e98c572cf48a99fda9adba85757c34b823f41efe1e/coverage-7.15.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d385fc9b054e309ad3cecdc77b586d2af0c98aeec2fdb3773544586f366e817c", size = 266043, upload-time = "2026-07-12T20:57:55.095Z" }, + { url = "https://files.pythonhosted.org/packages/16/e0/55c4b1217a572a43e13b39e1eb78d0da29fb23679003bd0cdf22c50b1978/coverage-7.15.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1198bca9c0dd7c188aae1f185b0c0b5fc4f0a2b6909000858c29550320bdb07", size = 268465, upload-time = "2026-07-12T20:57:57.017Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e2/ee47944f76afc03909119b036fe9e0da8cbd274a5141287de79791a0fb6d/coverage-7.15.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5d0297e6a070eadb49df7cddd0ab6f420b8b689dd8904c7dd815a323168fa57e", size = 269584, upload-time = "2026-07-12T20:57:58.958Z" }, + { url = "https://files.pythonhosted.org/packages/cb/8a/6b4d9779c7b2e21c3d12c3425e3261aa7411399319e27aa402dfec4db5d0/coverage-7.15.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:916fcf2214f56960e409561b37fc32a160a42b6e85483d0652d7b70fa55d707e", size = 263019, upload-time = "2026-07-12T20:58:00.979Z" }, + { url = "https://files.pythonhosted.org/packages/c4/1e/db5c7fa0c8ba5ece390a1e1a3f30db71d440240a80589df28e66a7503c40/coverage-7.15.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f837bae572c7869ffaa502e604c87e182543012831cf87aae4586ad090ac6dcf", size = 265916, upload-time = "2026-07-12T20:58:03.005Z" }, + { url = "https://files.pythonhosted.org/packages/83/53/fe5176682b00709b13fab36addd26883139d0dea430816fea412e69255e2/coverage-7.15.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3ea65e3ee6c7c32349fd00559927a9e577bdd72386087eeed1c42b62dfce9b82", size = 263520, upload-time = "2026-07-12T20:58:04.994Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e7/16f15127be93fbc70c667df5ec5dce934fc76c9b0888d84969a5d5341e2c/coverage-7.15.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:345034976f46a1c54bd17f4e43eb30bb92cb7082fcddff03250cff136cc4eb82", size = 267254, upload-time = "2026-07-12T20:58:06.824Z" }, + { url = "https://files.pythonhosted.org/packages/cd/73/e5119111f6f065376395a525f7ce6e9174d83f3db6d217ea0211a61cca4d/coverage-7.15.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:4f051a64eb8f8addb4661c2b41d6eea5b7ebc68ad4b2baea8d9bc54e1956e5f7", size = 262366, upload-time = "2026-07-12T20:58:08.555Z" }, + { url = "https://files.pythonhosted.org/packages/d7/9c/6d0a81182df18a73b081e7a8630f0e2a52b12dfd7898c6ab839551a454d2/coverage-7.15.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a7625770f7720b49bb30d194ad2f8d50fab3c5177874af3d2399676f95f9c594", size = 264680, upload-time = "2026-07-12T20:58:10.359Z" }, + { url = "https://files.pythonhosted.org/packages/d9/a2/bac0cbd4450638f1be2041a464b1766c8cc94abf705a2df6f1c8d4be870d/coverage-7.15.1-cp314-cp314t-win32.whl", hash = "sha256:81e503d130a472ad1bd38199ecd35116b40d92bcd31e27a2cacde035381f2070", size = 224077, upload-time = "2026-07-12T20:58:12.065Z" }, + { url = "https://files.pythonhosted.org/packages/f0/b2/d83c5403155172a43ba47c08641bad3f89822d8405102423a41339d2c857/coverage-7.15.1-cp314-cp314t-win_amd64.whl", hash = "sha256:724e878b213b302ad46e9f2fc872d386613f20ebfc492a211482d917ea76c14f", size = 224908, upload-time = "2026-07-12T20:58:13.956Z" }, + { url = "https://files.pythonhosted.org/packages/cc/41/442b74cad832cc77712080585455482e7cc4f4a9a13192f65731dcd18231/coverage-7.15.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ce2f05c14d077f406fefc4fa5e4f093ad0e0787549f6582535d6e28766f0361b", size = 224219, upload-time = "2026-07-12T20:58:16.315Z" }, + { url = "https://files.pythonhosted.org/packages/34/98/07a67cf1a26e795d617ed5c540c042b0ac87b72f810c30c07f076cf334f3/coverage-7.15.1-py3-none-any.whl", hash = "sha256:717d01e6e00bed56ad13306f19e0dd2f4f645ee8159d2c72c72301d6cfc7090c", size = 213284, upload-time = "2026-07-12T20:58:18.079Z" }, +] + +[package.optional-dependencies] +toml = [ + { name = "tomli", marker = "python_full_version <= '3.11'" }, +] + [[package]] name = "cryptography" version = "50.0.2" @@ -556,6 +659,9 @@ build = [ { name = "build" }, { name = "pip" }, ] +coverage = [ + { name = "coverage", extra = ["toml"] }, +] lint = [ { name = "ruff" }, ] @@ -578,6 +684,7 @@ build = [ { name = "build", specifier = ">=1.6.1" }, { name = "pip", specifier = ">=25.3" }, ] +coverage = [{ name = "coverage", extras = ["toml"], specifier = "==7.15.1" }] lint = [{ name = "ruff", specifier = "==0.17.0" }] pip = [{ name = "pip", specifier = ">=25.3" }] release = [ diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index b330035b16..c6954246ba 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -546,8 +546,13 @@ jobs: - uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0 with: python-version: "3.12" - - name: Install coverage - run: pip install 'coverage[toml]>=7' + - uses: astral-sh/setup-uv@18d369b23da25a81e9458561248e1aafff6a70fa # v10.3.1 + with: + enable-cache: true + cache-dependency-glob: .github/ci-tools/uv.lock + cache-suffix: flow-coverage + - name: Install coverage from the CI tools lock + run: python ../../scripts/ci/locked_install.py --lock .github/ci-tools:coverage - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 with: pattern: flow-coverage-shard-* diff --git a/packages/flow/public-artifacts.json b/packages/flow/public-artifacts.json index 17b27ecdb2..ef4ee3ffb0 100644 --- a/packages/flow/public-artifacts.json +++ b/packages/flow/public-artifacts.json @@ -572,6 +572,38 @@ "schemas/sanitized-artifact-approval-v1.json", "schemas/sanitized-artifact-manifest-v1.json", "source-policy.public.json", - "tests/golden/tutorial_run.json" + "tests/golden/tutorial_run.json", + "tests/golden_runs/baselines/bundles/mockmed-triage/manifest.json", + "tests/golden_runs/baselines/bundles/mockmed-triage/param_proposals.json", + "tests/golden_runs/baselines/bundles/mockmed-triage/sections.json", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/layout_fingerprint.json", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_000_expect.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_001_expect.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_002_expect.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_003_expect.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_004.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_004_expect.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_005_expect.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_006_expect.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_007_expect.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_008_expect.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/templates/step_010_expect.png", + "tests/golden_runs/baselines/bundles/mockmed-triage/workflow.json", + "tests/golden_runs/baselines/mockmed_data_growth.json", + "tests/golden_runs/baselines/mockmed_lookalike_row.json", + "tests/golden_runs/baselines/mockmed_missing_row.json", + "tests/golden_runs/baselines/mockmed_modal.json", + "tests/golden_runs/baselines/mockmed_pass.json", + "tests/golden_runs/baselines/mockmed_pass_structural.json", + "tests/golden_runs/baselines/mockmed_rename.json", + "tests/golden_runs/baselines/mockmed_sort.json", + "tests/golden_runs/baselines/mockmed_theme.json" ] } From 856137dfe5804b300aeeae464661db8adef48a9c Mon Sep 17 00:00:00 2001 From: abrichr Date: Tue, 3 Nov 2026 17:42:30 -0500 Subject: [PATCH 15/17] ci(flow): collect coverage on the nightly tier only With --cov in every flow-unit shard, the full lane's shard 2 hit its 40-minute limit at 99% (Packages run 41715793206): coverage slows the suite by about a third. Pull requests and main's post-merge run now collect none; a schedule or a dispatch collects it, with a 60-minute limit, and flow-coverage reports it. --- .github/workflows/packages.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index c6954246ba..196332926a 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -413,7 +413,9 @@ jobs: # the group. if: github.event.pull_request.draft != true && (needs.scope.outputs.flow == 'true' && github.event_name != 'merge_group') runs-on: ubuntu-latest - timeout-minutes: 40 + # The nightly tier (a schedule or a dispatch) also measures coverage, + # which slows the suite by about a third; it gets 60 minutes. + timeout-minutes: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && 60 || 40 }} strategy: fail-fast: false matrix: @@ -503,6 +505,9 @@ jobs: OPENADAPT_TEST_LANE: ${{ github.event_name == 'pull_request' && 'fast' || 'full' }} # Each shard keeps its coverage data; flow-coverage combines them. COVERAGE_FILE: runs/coverage-shard-${{ matrix.shard }}.data + # Coverage only on the nightly tier, so it adds no time to a pull + # request's ten-minute `ci` or to main's post-merge run. + COVERAGE_ARGS: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && '--cov --cov-report=' || '' }} # -n auto: one xdist worker per core. --dist loadfile keeps each file # on one worker, so module fixtures and file-local state stay in one # process. xdist gives each worker its own directory under --basetemp @@ -511,10 +516,11 @@ jobs: set -euo pipefail mkdir -p runs mapfile -t files < "$RUNNER_TEMP/shard.txt" + # shellcheck disable=SC2086 # COVERAGE_ARGS is empty or two flags. pytest -n auto --dist loadfile -v --durations=20 --basetemp=runs/ci \ - --cov --cov-report= "${files[@]}" + $COVERAGE_ARGS "${files[@]}" - name: Upload coverage data - if: always() + if: always() && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: flow-coverage-shard-${{ matrix.shard }} @@ -527,10 +533,11 @@ jobs: # not gate yet: the floor is set at the measured value once it is known # (docs/design/DECOMPOSITION.md, section 9). Keep the include list in sync # with the strict mypy list above and CODEOWNERS. It is not in - # packages-gate. + # packages-gate, and runs on the nightly tier only, where flow-unit + # collects the data. name: flow safety-path coverage (reported, not gating) needs: [scope, flow-unit] - if: always() && github.event.pull_request.draft != true && needs.scope.outputs.flow == 'true' && github.event_name != 'merge_group' + if: always() && needs.scope.outputs.flow == 'true' && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') runs-on: ubuntu-latest timeout-minutes: 10 defaults: From 34e78ab9d914aa113191581978e1689c6ab874e5 Mon Sep 17 00:00:00 2001 From: abrichr Date: Tue, 3 Nov 2026 21:23:44 -0500 Subject: [PATCH 16/17] test: ratchet budgets and import pins at main's sizes after the merge replayer.py grew to 19524, __main__.py to 12915, ir.py to 6352, recorder.py to 4823 and playwright_backend.py to 5199 on main while this waited. The snapshot adds the 4 names main added; none were removed. --- packages/flow/docs/design/DECOMPOSITION.md | 10 +++++----- packages/flow/tests/fixtures/import_surface.json | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/flow/docs/design/DECOMPOSITION.md b/packages/flow/docs/design/DECOMPOSITION.md index f0c78549af..45779b5228 100644 --- a/packages/flow/docs/design/DECOMPOSITION.md +++ b/packages/flow/docs/design/DECOMPOSITION.md @@ -594,16 +594,16 @@ that: | File | Line budget | |---|---:| -| `packages/flow/openadapt_flow/runtime/replayer.py` | 19303 | -| `packages/flow/openadapt_flow/__main__.py` | 12708 | +| `packages/flow/openadapt_flow/runtime/replayer.py` | 19524 | +| `packages/flow/openadapt_flow/__main__.py` | 12915 | | `packages/flow/openadapt_flow/qualification.py` | 5776 | -| `packages/flow/openadapt_flow/ir.py` | 6286 | +| `packages/flow/openadapt_flow/ir.py` | 6352 | | `packages/desktop/openadapt_desktop/dispatch.py` | 6404 | -| `packages/capture/openadapt_capture/recorder.py` | 4792 | +| `packages/capture/openadapt_capture/recorder.py` | 4823 | | `packages/flow/openadapt_flow/interactive_recorder.py` | 4603 | | `packages/flow/openadapt_flow/runtime/durable/attended.py` | 4301 | | `packages/flow/openadapt_flow/terminal_verification_v2.py` | 3663 | -| `packages/flow/openadapt_flow/backends/playwright_backend.py` | 5172 | +| `packages/flow/openadapt_flow/backends/playwright_backend.py` | 5199 | ## 7. Coordination with work in flight diff --git a/packages/flow/tests/fixtures/import_surface.json b/packages/flow/tests/fixtures/import_surface.json index 2fa6270931..6255d11741 100644 --- a/packages/flow/tests/fixtures/import_surface.json +++ b/packages/flow/tests/fixtures/import_surface.json @@ -30,6 +30,7 @@ "_GraphStepContext", "_MAX_FRESH_ACTUATION_REACQUISITIONS", "_MAX_SERVER_RESPONSES", + "_NotActionableError", "_PAGE_SCALE_AXIS_AGREEMENT", "_PAGE_SCALE_BAND", "_PAGE_SCALE_BOUNDS", @@ -374,6 +375,7 @@ "_build_surface_backends", "_carry_item_approval_to_pause", "_change_ledger_epilogue", + "_checkout_harness_on_path", "_claim_qualification_case_attempt", "_clear_progress_line", "_cmd_approve", @@ -430,6 +432,7 @@ "_cmd_serve_reward", "_cmd_silent_saves", "_cmd_teach", + "_cmd_teach_authorization", "_cmd_teach_branch", "_cmd_tutorial", "_cmd_validate_hosted", @@ -742,6 +745,7 @@ "WebFormField", "WebFormPrecheck", "WebFormSpec", + "WebFormWrite", "Workflow", "_CheckLevelName", "_compiled_full_match", From 5daa5b9d3f22c4ab95dc7c148cfdd01c2f34f472 Mon Sep 17 00:00:00 2001 From: abrichr Date: Wed, 4 Nov 2026 00:26:21 -0500 Subject: [PATCH 17/17] chore(flow): set ratchet budgets and import surface to main after the merge Three files grew on main since the budgets were set (replayer.py +5, __main__.py +320, playwright_backend.py +83); section 6 sets each budget to main's size when this PR merges. The import-surface snapshot drops _refuse_rollback_durable, which #1772 removed on main with no remaining references, and adds the names #1772 added. --- packages/flow/docs/design/DECOMPOSITION.md | 6 +++--- packages/flow/tests/fixtures/import_surface.json | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/flow/docs/design/DECOMPOSITION.md b/packages/flow/docs/design/DECOMPOSITION.md index 45779b5228..0f259f0f67 100644 --- a/packages/flow/docs/design/DECOMPOSITION.md +++ b/packages/flow/docs/design/DECOMPOSITION.md @@ -594,8 +594,8 @@ that: | File | Line budget | |---|---:| -| `packages/flow/openadapt_flow/runtime/replayer.py` | 19524 | -| `packages/flow/openadapt_flow/__main__.py` | 12915 | +| `packages/flow/openadapt_flow/runtime/replayer.py` | 19529 | +| `packages/flow/openadapt_flow/__main__.py` | 13235 | | `packages/flow/openadapt_flow/qualification.py` | 5776 | | `packages/flow/openadapt_flow/ir.py` | 6352 | | `packages/desktop/openadapt_desktop/dispatch.py` | 6404 | @@ -603,7 +603,7 @@ that: | `packages/flow/openadapt_flow/interactive_recorder.py` | 4603 | | `packages/flow/openadapt_flow/runtime/durable/attended.py` | 4301 | | `packages/flow/openadapt_flow/terminal_verification_v2.py` | 3663 | -| `packages/flow/openadapt_flow/backends/playwright_backend.py` | 5199 | +| `packages/flow/openadapt_flow/backends/playwright_backend.py` | 5282 | ## 7. Coordination with work in flight diff --git a/packages/flow/tests/fixtures/import_surface.json b/packages/flow/tests/fixtures/import_surface.json index 6255d11741..825a81dfc9 100644 --- a/packages/flow/tests/fixtures/import_surface.json +++ b/packages/flow/tests/fixtures/import_surface.json @@ -371,6 +371,7 @@ "_attached_web_page", "_attended_service_from_args", "_bind_approval_mode", + "_bind_sealed_run", "_build_and_run_replayer", "_build_surface_backends", "_carry_item_approval_to_pause", @@ -422,6 +423,7 @@ "_cmd_report_break", "_cmd_report_run", "_cmd_resume", + "_cmd_resume_roll_back", "_cmd_review_sanitized", "_cmd_route", "_cmd_run", @@ -469,6 +471,7 @@ "_parse_identifier_region_arg", "_parse_params", "_parse_qualification_signal", + "_paused_for_a_person", "_pinned_lineage", "_prepare_approval_store", "_print_break_it_narrative", @@ -492,7 +495,6 @@ "_recording_encryption_key", "_recording_privacy_notices", "_refuse_missing_citrix_readiness", - "_refuse_rollback_durable", "_refuse_rollback_unwired", "_refuse_shared_readback_session", "_refuse_unverified_managed_qualification_admission", @@ -512,6 +514,8 @@ "_resume_approval_gate", "_resume_approval_mode", "_retain_drill_evidence", + "_roll_back_sealed", + "_rollback_seal", "_run_is_config_pinned", "_sealed_input_refusal", "_sealed_paths_in",