def create_svg_mistral_tasks(task_list, radius=45):
    """Create an SVG UI diagram of Mistral task flow.

    This takes the output of get_mistral_tasks() and generates an SVG-based
    graphical diagram of the ordered Mistral tasks.  The code automatically
    scales the SVG based on the circle radius value.  Note that SVG circles
    don't scale radius by percentages very well which is why this is still
    pixel math.  The circle radius is the diagonal length of the viewport
    which is not very useful in this case.
    """
    indent = radius * 1.1
    diameter = radius * 2
    num_tasks = len(task_list)
    if num_tasks < 1:
        return '[No Tasks Found]'
    svg_output = '<svg height="%d" width="%d">\n' % (diameter * 1.1, (
        num_tasks - 1) * diameter * 1.3 + indent * 2)
    svg_output += (
        """  <line x1="%d" y1="50%%" x2="%d" y2="50%%" style="stroke:rgb(0,0,0);stroke-width:3"/>
"""
         % (indent, (num_tasks - 1) * diameter * 1.2 + indent))
    svg_output += '  <g stroke="black" stroke-width="3" fill="lightgrey">\n'
    for counter in range(num_tasks):
        svg_output += '    <circle cx="%d" cy="50%%" r="%d"/>\n' % (counter *
            diameter * 1.2 + indent, radius)
    svg_output += '  </g>\n'
    svg_output += '  <g style="text-anchor: middle; font-size: 13px">\n'
    for counter in range(num_tasks):
        svg_output += '    <text x="%d" y="55%%">%s</text>\n' % (counter *
            diameter * 1.2 + indent, task_list[counter][0])
    svg_output += '  </g>\n'
    svg_output += '</svg>\n'
    return svg_output
