{{- if and (gt (len .Messages) 0) (eq (index .Messages 0).Role "system")}}
<|im_start|>system
{{- (index .Messages 0).Content}}<|im_end|>
{{- else}}
<|im_start|>system
You are a highly skilled software engineer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices.<|im_end|>
{{- end}}
{{- end}}
{{- /* Process messages */}}
{{- range $index, $message := .Messages}}
{{- /* Skip first system message if tools are present */}}
{{- if and $.Tools (eq $index 0) (eq $message.Role "system")}}{{else}}
{{- if or (eq $message.Role "user") (eq $message.Role "system")}}
<|im_start|>{{$message.Role}}
{{$message.Content}}<|im_end|>
{{- else if and (eq $message.Role "assistant") $message.ToolCalls}}
<|im_start|>assistant
{{- if $message.Content}}{{$message.Content}}{{- end}}