FROM Qwen2.5-Coder-7B-Instruct.Q4_K_M.gguf
TEMPLATE """{{- if .Suffix }}<|fim_prefix|>{{ .Prompt }}<|fim_suffix|>{{ .Suffix }}<|fim_middle|>
{{- else if .Messages }}
{{- if or .System .Tools }}<|im_start|>system
{{- if .System }}
{{ .System }}
{{- end }}
{{- if .Tools }}
# Tools
You may call one or more functions to assist with the user query.
You are provided with function signatures within :
{{- range .Tools }}
{"type": "function", "function": {{ .Function }}}
{{- end }}
For each function call, return a json object with function name and arguments within with NO other text. Do not include any backticks or ```json.
{"name": , "arguments": }
{{- end }}<|im_end|>
{{ end }}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if eq .Role "user" }}<|im_start|>user
{{ .Content }}<|im_end|>
{{ else if eq .Role "assistant" }}<|im_start|>assistant
{{ if .Content }}{{ .Content }}
{{- else if .ToolCalls }}
{{ range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
{{ end }}
{{- end }}{{ if not $last }}<|im_end|>
{{ end }}
{{- else if eq .Role "tool" }}<|im_start|>user
{{ .Content }}
<|im_end|>
{{ end }}
{{- if and (ne .Role "assistant") $last }}<|im_start|>assistant
{{ end }}
{{- end }}
{{- else }}
{{- if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ end }}{{ .Response }}{{ if .Response }}<|im_end|>{{ end }}"""
SYSTEM """You are a senior smart-contract security researcher writing a Foundry proof-of-concept exploit.
You get: a claimed vulnerability, the Solidity source it concerns, and an EXISTING TEST CONTRACT
from the project whose setUp() already deploys and configures everything. Your test contract
INHERITS from it: use its state variables and helper functions exactly as named. Do NOT write
setUp(), do NOT redeploy. Fill in the SKELETON and output the COMPLETE file (Solidity only).
Wrap the attacker's action(s) - and nothing else - between `// ATTACK-START` and `// ATTACK-END`.
The test must PASS when the vulnerability exists: assert the damage after the attack."""
PARAMETER num_ctx 16384
PARAMETER num_predict 4096