{% if detail.steps %}
{% for step in detail.steps %}
{% if step.is_llm_call %}psychology{% elif step.is_tool_call %}search{% else %}check_circle{% endif %}
{% if step.is_llm_call %}LLM Completion{% elif step.is_tool_call %}Tool Invocation{% else %}Execution Step{% endif %}

{% if step.is_llm_call %}{{ step.data.get('model', 'Unknown Model') }}{% elif step.is_tool_call %}{{ step.data.get('tool_name', 'Unknown Tool') }}{% else %}Result Payload{% endif %}

{% if step.duration_ms %}
schedule {{ format_duration(step.duration_ms) }}
{% endif %} {% if step.is_llm_call and step.data.get('input_tokens') %}
token {{ step.data.input_tokens + (step.data.output_tokens or 0) }} tokens
{% endif %} Success expand_less
{% if step.is_llm_call %}

Model

{{ step.data.get('model', 'Unknown Model') }}

Output Preview

{{ step.data.get('content', '...') }}

Usage Details

"prompt_tokens": {{ step.data.get('input_tokens', 0) }},
"completion_tokens": {{ step.data.get('output_tokens', 0) }}
{% elif step.is_tool_call %}

Input Arguments

{{ json_dumps(step.data.get('arguments', {}), indent=2) }}

Tool Status

"status": "invoked",
"name": "{{ step.data.get('tool_name', 'unknown') }}"
{% else %}

Response Data

{{ step.data.get('result', 'No result payload recorded.') }}
{% endif %}
{% endfor %}
{% else %}
bolt

Awaiting Execution Trace

Capture the agent's thought process and tool invocations in real-time.

{% endif %}