{# Optional candidate history belongs to this result, not separate result entries. #} {% if entry.attempt_history %} Attempt history · {{ entry.attempt_history | length }} candidate{{ 's' if entry.attempt_history | length != 1 else '' }}
Inputs and responses recorded during this attack.
{% if entry.attempt_history | length > 1 %}
{% endif %} {% for attempt in entry.attempt_history %}
Candidate {{ loop.index }} {% if attempt.error %} ERROR {% elif attempt.success is sameas true %} SUCCESS {% elif attempt.success is sameas false %} FAILED {% else %} UNJUDGED {% endif %}
{% for label, value in [('Input', attempt.input), ('Response', attempt.response)] %}
{{ label }}
{% if value is mapping or (value is sequence and value is not string) %}
{{ value | tojson(indent=2) | e }}
{% else %}
{{ process_text(value) | e }}
{% endif %}
{% endfor %} {% if attempt.error %}
Error
{{ process_text(attempt.error) | e }}
{% endif %}
{% endfor %} {% endif %}