def METHOD_NAME(
    self,
    name: str,
    host: TargetHost,
    current_depth: int,
    servers: Sequence[str],
    options: Mapping,
    interrupt: Event,
) -> ExploiterResult:
    compatible_with_local_os = (
        self._plugin_compatibility_verifier.verify_local_operating_system_compatibility(
            AgentPluginType.EXPLOITER, name
        )
    )
    if not compatible_with_local_os:
        raise IncompatibleLocalOperatingSystemError(
            f'The exploiter, "{name}", is not compatible with the local operating system'
        )
    compatible_with_target_os = (
        self._plugin_compatibility_verifier.verify_target_operating_system_compatibility(
            AgentPluginType.EXPLOITER, name, host
        )
    )
    if not compatible_with_target_os:
        raise IncompatibleTargetOperatingSystemError(
            f'The exploiter, "{name}", is not compatible with the operating system on {host.ip}'
        )
    exploiter = self._plugin_registry.get_plugin(AgentPluginType.EXPLOITER, name)
    exploiter_result = exploiter.run(
        host=host,
        servers=servers,
        current_depth=current_depth,
        options=options,
        interrupt=interrupt,
    )
    if exploiter_result is None:
        exploiter_result = ExploiterResult(
            exploitation_success=False,
            propagation_success=False,
            error_message=(
                f"An unexpected error occurred while running {name} and the exploiter did not "
                "return any data"
            ),
        )
    return exploiter_result