docs: def GetArtifactCollectorArgs(flow_args, knowledge_base):
    """Prepare bundle of artifacts and their dependencies for the client.
  
    Args:
      flow_args: An `ArtifactCollectorFlowArgs` instance.
      knowledge_base: contains information about the client
  
    Returns:
      rdf value object containing a list of extended artifacts and the
      knowledge base
    """
    args = rdf_artifacts.ClientArtifactCollectorArgs()
    args.knowledge_base = knowledge_base
  
    args.apply_parsers = flow_args.apply_parsers
    args.ignore_interpolation_errors = flow_args.ignore_interpolation_errors
    args.max_file_size = flow_args.max_file_size
    args.use_tsk = flow_args.use_tsk
  
    if not flow_args.recollect_knowledge_base:
      artifact_names = flow_args.artifact_list
    else:
      artifact_names = GetArtifactsForCollection(knowledge_base.os,
                                                 flow_args.artifact_list)
  
    expander = ArtifactExpander(knowledge_base, flow_args.path_type,
                                flow_args.max_file_size)
    for artifact_name in artifact_names:
      rdf_artifact = artifact_registry.REGISTRY.GetArtifact(artifact_name)
      if not MeetsConditions(knowledge_base, rdf_artifact):
        continue
      if artifact_name in expander.processed_artifacts:
        continue
      requested_by_user = artifact_name in flow_args.artifact_list
      for expanded_artifact in expander.Expand(rdf_artifact, requested_by_user):
        args.artifacts.append(expanded_artifact)
    return args