{
  "actual_result": {
    "corrected_decision_should_be": "PASS_AGENT_JOB_SELECTOR_PLAN_DRY_RUN_CORRECTED",
    "functional_result": "PASS",
    "source_decision": "FAIL_AGENT_JOB_SELECTOR_PLAN_DRY_RUN"
  },
  "changes": {
    "backend_restart_done": "NO",
    "db_changed": "NO",
    "firewall_reload_done": "NO",
    "manager_invoked": "NO",
    "mapper_changed": "NO",
    "network_reload_done": "NO",
    "new_peer_created": "NO",
    "policy_changed": "NO",
    "private_material_published": "NO",
    "selector_changed": "NO_CORRECTION_REPORT_ONLY",
    "wg_reload_done": "NO"
  },
  "future_check_rule": {
    "decision_is_report_or_derived_field": true,
    "do_not_validate_previous_report_only_fields_in_facts": true,
    "facts_json_contains_decision_required": false
  },
  "mode": "CORRECT_REPORT_ONLY_FALSE_FAIL",
  "publish": {
    "local_index": "http://192.168.30.84:8099/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/",
    "published_dir": "/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260708-164746_step040e2_correct_agent_job_selector_plan",
    "trycf_index": "https://maple-movie-urls-cigarettes.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/",
    "trycf_report": "https://maple-movie-urls-cigarettes.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260708-164746_step040e2_correct_agent_job_selector_plan/"
  },
  "schema": "router-step-facts-v1",
  "source": {
    "check_tool_exists_rc": 0,
    "false_fail_reason": "previous_facts_check_required_report_only_field",
    "final_check_expected_fail_rc": 0,
    "functional_check_rc": 0,
    "report_fail_decision_rc": 0,
    "report_final_check_1_rc": 0,
    "src_dir": "/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260708-164313_step040e_agent_job_selector_plan_dry_run",
    "src_facts": "/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260708-164313_step040e_agent_job_selector_plan_dry_run/facts.json",
    "src_facts_exists_rc": 0,
    "src_final_check": "/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260708-164313_step040e_agent_job_selector_plan_dry_run/final-check.txt",
    "src_final_check_exists_rc": 0,
    "src_report": "/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260708-164313_step040e_agent_job_selector_plan_dry_run/report.txt",
    "src_report_exists_rc": 0
  },
  "step": "STEP_040E2_CORRECT_AGENT_JOB_SELECTOR_PLAN",
  "validated_040e": {
    "changes": {
      "backend_restart_done": "NO",
      "db_changed": "NO",
      "firewall_reload_done": "NO",
      "manager_invoked": "NO",
      "mapper_changed": "NO",
      "network_reload_done": "NO",
      "new_peer_created": "NO",
      "policy_changed": "NO",
      "private_material_published": "NO",
      "selector_changed": "NO",
      "wg_reload_done": "NO"
    },
    "jobs": {
      "bad_conflict": {
        "action": "error",
        "apply_performed": false,
        "contract_valid": false,
        "error_count": 1,
        "errors": [
          "same_ip_conflict"
        ],
        "rc": 2
      },
      "existing_cs4": {
        "action": "noop",
        "apply_performed": false,
        "contract_valid": true,
        "fwmark": "0x201",
        "idempotent_noop": true,
        "rc": 0,
        "selector_class": "cs4",
        "selector_entry_count_after_planned": 4,
        "selector_entry_count_before": 4,
        "slot_code": "vpn1",
        "table_id": 201,
        "tunnel_ip": "10.253.1.13",
        "would_append": false
      },
      "future_cs5": {
        "action": "append",
        "apply_performed": false,
        "contract_valid": true,
        "fwmark": "0x202",
        "idempotent_noop": false,
        "rc": 0,
        "selector_class": "cs5",
        "selector_entry_count_after_planned": 5,
        "selector_entry_count_before": 4,
        "slot_code": "vpn2",
        "table_id": 202,
        "tunnel_ip": "10.253.1.14",
        "would_append": true
      }
    },
    "vm100": {
      "selector_active_lines": [
        "10.253.1.10 cs1 canary_vpn3",
        "10.253.1.11 cs2 canary_vpn4",
        "10.253.1.12 cs3 canary_vpn5",
        "10.253.1.13 cs4 canary_vpn1"
      ],
      "vm100_cs4_peer_visible_rc": 0,
      "vm100_selector_active_entry_count": 4,
      "vm100_selector_conf_exists_rc": 0,
      "vm100_selector_cs4_present_rc": 0,
      "vm100_selector_cs5_present_rc": 1,
      "vm100_wg_paid_peer_count": 4
    },
    "vm101": {
      "slots": {
        "vpn1": {
          "fwmark": "0x201",
          "interface_name": "vpn1",
          "label": "canary_vpn1",
          "selector_class": "cs4",
          "status": "healthy",
          "table_id": 201
        },
        "vpn2": {
          "fwmark": "0x202",
          "interface_name": "vpn2",
          "label": "canary_vpn2",
          "selector_class": "cs5",
          "status": "healthy",
          "table_id": 202
        },
        "vpn3": {
          "fwmark": "0x203",
          "interface_name": "vpn3",
          "label": "canary_vpn3",
          "selector_class": "cs1",
          "status": "healthy",
          "table_id": 203
        },
        "vpn4": {
          "fwmark": "0x204",
          "interface_name": "vpn4",
          "label": "canary_vpn4",
          "selector_class": "cs2",
          "status": "healthy",
          "table_id": 204
        },
        "vpn5": {
          "fwmark": "0x205",
          "interface_name": "vpn5",
          "label": "canary_vpn5",
          "selector_class": "cs3",
          "status": "healthy",
          "table_id": 205
        }
      },
      "vm101_slot_registry_exists_rc": 0,
      "vm101_status_json_parse_rc": 0,
      "vm101_status_run_rc": 0,
      "vm101_status_schema": "router-egress-slots-status-v1",
      "vm101_status_slot_count": 5,
      "vm101_status_tool_exists_rc": 0
    },
    "vm121": {
      "install": {
        "vm121_backup_dir": "/root/router-ops-backups/STEP_040E_AGENT_JOB_SELECTOR_PLAN_20260708-164316",
        "vm121_rollback_create_rc": 0,
        "vm121_rollback_path": "/root/rollback-step040e-agent-job-selector-plan.sh",
        "vm121_selector_helper_exists_rc": 0,
        "vm121_wrapper_backup_rc": 0,
        "vm121_wrapper_exists_rc": 0,
        "vm121_wrapper_install_rc": 0,
        "vm121_wrapper_path": "/usr/local/sbin/wg-access-agent-job-selector-plan.py"
      }
    }
  }
}
