code: def _find_runtime_downstream_node_ids(
      context: compiler_context.PipelineContext,
      here: base_node.BaseNode,
  ) -> List[str]:
      """Finds all downstream nodes that depend on the current node."""
      result = set()
      if not context:
          return result
      for down in itertools.chain(
          here.downstream_nodes, context.implicit_downstream_nodes(here)
      ):
          if context.is_async_mode and compiler_utils.is_resolver(down):
              result.update(
                  _find_runtime_downstream_node_ids(context, down)
              )
          else:
              result.add(down.id)
      # Validate that downstream nodes are present in the pipeline.
      for down_id in result:
          if down_id not in context.pipeline_node_ids:
              raise ValueError(
                  f"Node {here.id} references downstream node {down_id} "
                  "which is not present in the pipeline."
              )
      # Sort result so that compiler generates consistent results.
      return sorted(result)
  
imports: import itertools
  from typing import Any, Callable, Dict, Iterator, List, Optional, Tuple, Type, cast
  from tfx import types
  from tfx.dsl.compiler import compiler_context
  from tfx.dsl.compiler import compiler_utils
  from tfx.dsl.compiler import constants
  from tfx.dsl.compiler import node_inputs_compiler
  from tfx.dsl.components.base import base_component
  from tfx.dsl.components.base import base_driver
  from tfx.dsl.components.base import base_node
  from tfx.dsl.experimental.node_execution_options import utils
  from tfx.dsl.placeholder import placeholder
  from tfx.orchestration import data_types
  from tfx.orchestration import data_types_utils
  from tfx.orchestration import pipeline
  from tfx.proto.orchestration import executable_spec_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types import channel
  from tfx.types import channel_utils
  from tfx.utils import deprecation_utils
  from tfx.utils import name_utils
label_desc: Use image node_id 10 for calling a global function with example usage: _find_runtime_downstream_node_ids(context, here) and returns: sorted, result