[System]
You are Swival, a coding agent with a friendly, human-like personality. You solve tasks autonomously using the tools provided, taking the optimal decisions at every step. Keep going until the task is fully complete. Do not call tools for simple math, greetings, or unclear standalone questions. For minor ambiguity, pick the most likely intent and briefly state your choice.

## Workflow

- Use tools only when needed; answer plain questions directly.
- Explore before editing: outline, list_files, grep, then read_file.
- Use think before multi-step coding tasks, debugging, choosing alternatives, and editing code.
- Use todo for multi-step work and mark items done as you finish.
- One logical change at a time. Do not re-read files after editing.
- On tool errors, use think to diagnose before retrying.

## Editing

- Copy old_string verbatim from read_file.
- For multiple matches, pass line_number. Use replace_all only when every occurrence should change.

## Safety

- Never print secrets to the console.
- Do not take any action that could degrade the workspace.

[User] fetch http://localhost/status and summarize

[Tool]
Server status

load=0.32 mem=78% temp=64C

home & docs

[Assistant] Server reports load 0.32, memory 78%, temperature 64C. The body is plain HTML with two links.

<｜begin▁of▁sentence｜>You are Swival, a coding agent with a friendly, human-like personality. You solve tasks autonomously using the tools provided, taking the optimal decisions at every step. Keep going until the task is fully complete. Do not call tools for simple math, greetings, or unclear standalone questions. For minor ambiguity, pick the most likely intent and briefly state your choice.

## Workflow

- Use tools only when needed; answer plain questions directly.
- Explore before editing: outline, list_files, grep, then read_file.
- Use think before multi-step coding tasks, debugging, choosing alternatives, and editing code.
- Use todo for multi-step work and mark items done as you finish.
- One logical change at a time. Do not re-read files after editing.
- On tool errors, use think to diagnose before retrying.

## Editing

- Copy old_string verbatim from read_file.
- For multiple matches, pass line_number. Use replace_all only when every occurrence should change.

## Safety

- Never print secrets to the console.
- Do not take any action that could degrade the workspace.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>fetch http://localhost/status and summarize<｜Assistant｜><think>Plain GET; no body needed.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="web_fetch">
<｜DSML｜parameter name="url" string="true">http://localhost/status</｜DSML｜parameter>
<｜DSML｜parameter name="timeout" string="false">20</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>

Server status

load=0.32 mem=78% temp=64C

home & docs

</tool_result><｜Assistant｜><think></think>Server reports load 0.32, memory 78%, temperature 64C. The body is plain HTML with two links.<｜end▁of▁sentence｜>


[System] You are opencode, a terminal-based coding assistant. Resolve user tasks by inspecting the repository, planning a minimal change, and applying it. Use the bash, read, edit, and grep tools as needed.

[User] list the top-level repository files

[Tool]
.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile

[Assistant] Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.

<｜begin▁of▁sentence｜>You are opencode, a terminal-based coding assistant. Resolve user tasks by inspecting the repository, planning a minimal change, and applying it. Use the bash, read, edit, and grep tools as needed.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>list the top-level repository files<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">find . -maxdepth 1 -type f | sort</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">list repo-root files</｜DSML｜parameter>
<｜DSML｜parameter name="timeout" string="false">10</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile
</tool_result><｜Assistant｜></think>Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.<｜end▁of▁sentence｜>


[System] You are opencode, a terminal-based coding assistant. Resolve user tasks by inspecting the repository, planning a minimal change, and applying it. Use the bash, read, edit, and grep tools as needed.

[User] list the top-level repository files

[Tool]
.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile

[Assistant] Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.

<｜begin▁of▁sentence｜>You are opencode, a terminal-based coding assistant. Resolve user tasks by inspecting the repository, planning a minimal change, and applying it. Use the bash, read, edit, and grep tools as needed.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>list the top-level repository files<｜Assistant｜><think>Use a depth-limited find so the tool result stays readable.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">find . -maxdepth 1 -type f | sort</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">list repo-root files</｜DSML｜parameter>
<｜DSML｜parameter name="timeout" string="false">10</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile
</tool_result><｜Assistant｜><think></think>Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.<｜end▁of▁sentence｜>


[System]
You are Swival, a coding agent with a friendly, human-like personality. You solve tasks autonomously using the tools provided, taking the optimal decisions at every step. Keep going until the task is fully complete. Do not call tools for simple math, greetings, or unclear standalone questions. For minor ambiguity, pick the most likely intent and briefly state your choice.

## Workflow

- Use tools only when needed; answer plain questions directly.
- Explore before editing: outline, list_files, grep, then read_file.
- Use think before multi-step coding tasks, debugging, choosing alternatives, and editing code.
- Use todo for multi-step work and mark items done as you finish.
- One logical change at a time. Do not re-read files after editing.
- On tool errors, use think to diagnose before retrying.

## Editing

- Copy old_string verbatim from read_file.
- For multiple matches, pass line_number. Use replace_all only when every occurrence should change.

## Safety

- Never print secrets to the console.
- Do not take any action that could degrade the workspace.

[User] list the top-level repository files

[Tool]
.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile

[Assistant] Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.

<｜begin▁of▁sentence｜>You are Swival, a coding agent with a friendly, human-like personality. You solve tasks autonomously using the tools provided, taking the optimal decisions at every step. Keep going until the task is fully complete. Do not call tools for simple math, greetings, or unclear standalone questions. For minor ambiguity, pick the most likely intent and briefly state your choice.

## Workflow

- Use tools only when needed; answer plain questions directly.
- Explore before editing: outline, list_files, grep, then read_file.
- Use think before multi-step coding tasks, debugging, choosing alternatives, and editing code.
- Use todo for multi-step work and mark items done as you finish.
- One logical change at a time. Do not re-read files after editing.
- On tool errors, use think to diagnose before retrying.

## Editing

- Copy old_string verbatim from read_file.
- For multiple matches, pass line_number. Use replace_all only when every occurrence should change.

## Safety

- Never print secrets to the console.
- Do not take any action that could degrade the workspace.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>list the top-level repository files<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">find . -maxdepth 1 -type f | sort</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">list repo-root files</｜DSML｜parameter>
<｜DSML｜parameter name="timeout" string="false">10</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile
</tool_result><｜Assistant｜></think>Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.<｜end▁of▁sentence｜>


[System]
You are Swival, a coding agent with a friendly, human-like personality. You solve tasks autonomously using the tools provided, taking the optimal decisions at every step. Keep going until the task is fully complete. Do not call tools for simple math, greetings, or unclear standalone questions. For minor ambiguity, pick the most likely intent and briefly state your choice.

## Workflow

- Use tools only when needed; answer plain questions directly.
- Explore before editing: outline, list_files, grep, then read_file.
- Use think before multi-step coding tasks, debugging, choosing alternatives, and editing code.
- Use todo for multi-step work and mark items done as you finish.
- One logical change at a time. Do not re-read files after editing.
- On tool errors, use think to diagnose before retrying.

## Editing

- Copy old_string verbatim from read_file.
- For multiple matches, pass line_number. Use replace_all only when every occurrence should change.

## Safety

- Never print secrets to the console.
- Do not take any action that could degrade the workspace.

[User] list the top-level repository files

[Tool]
.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile

[Assistant] Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.

<｜begin▁of▁sentence｜>You are Swival, a coding agent with a friendly, human-like personality. You solve tasks autonomously using the tools provided, taking the optimal decisions at every step. Keep going until the task is fully complete. Do not call tools for simple math, greetings, or unclear standalone questions. For minor ambiguity, pick the most likely intent and briefly state your choice.

## Workflow

- Use tools only when needed; answer plain questions directly.
- Explore before editing: outline, list_files, grep, then read_file.
- Use think before multi-step coding tasks, debugging, choosing alternatives, and editing code.
- Use todo for multi-step work and mark items done as you finish.
- One logical change at a time. Do not re-read files after editing.
- On tool errors, use think to diagnose before retrying.

## Editing

- Copy old_string verbatim from read_file.
- For multiple matches, pass line_number. Use replace_all only when every occurrence should change.

## Safety

- Never print secrets to the console.
- Do not take any action that could degrade the workspace.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>list the top-level repository files<｜Assistant｜><think>Use a depth-limited find so the tool result stays readable.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">find . -maxdepth 1 -type f | sort</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">list repo-root files</｜DSML｜parameter>
<｜DSML｜parameter name="timeout" string="false">10</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile
</tool_result><｜Assistant｜><think></think>Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.<｜end▁of▁sentence｜>


[System] You are a coding agent operating in a local repository. Be terse. Use tools for filesystem inspection and edits; answer plain questions directly. Never narrate what you are about to do.

[User] list the top-level repository files

[Tool]
.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile

[Assistant] Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.

<｜begin▁of▁sentence｜>You are a coding agent operating in a local repository. Be terse. Use tools for filesystem inspection and edits; answer plain questions directly. Never narrate what you are about to do.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>list the top-level repository files<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">find . -maxdepth 1 -type f | sort</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">list repo-root files</｜DSML｜parameter>
<｜DSML｜parameter name="timeout" string="false">10</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile
</tool_result><｜Assistant｜></think>Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.<｜end▁of▁sentence｜>


[System] You are a coding agent operating in a local repository. Be terse. Use tools for filesystem inspection and edits; answer plain questions directly. Never narrate what you are about to do.

[User] list the top-level repository files

[Tool]
.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile

[Assistant] Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.

<｜begin▁of▁sentence｜>You are a coding agent operating in a local repository. Be terse. Use tools for filesystem inspection and edits; answer plain questions directly. Never narrate what you are about to do.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>list the top-level repository files<｜Assistant｜><think>Use a depth-limited find so the tool result stays readable.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">find . -maxdepth 1 -type f | sort</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">list repo-root files</｜DSML｜parameter>
<｜DSML｜parameter name="timeout" string="false">10</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>.git
README.md
ds4.c
ds4_server.c
ds4_cli.c
ds4.h
ds4_metal.m
metal/
misc/
tests/
gguf-tools/
speed-bench/
Makefile
</tool_result><｜Assistant｜><think></think>Top-level files: README.md, ds4.c, ds4_server.c, ds4_cli.c, ds4.h, ds4_metal.m, Makefile.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] show me the current branch

[Tool] main

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>show me the current branch<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">git rev-parse --abbrev-ref HEAD</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">current git branch</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>main
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] show me the current branch

[Tool] main

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>show me the current branch<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">git rev-parse --abbrev-ref HEAD</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">current git branch</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>main
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] count lines in ds4.c

[Tool] 23456 ds4.c

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>count lines in ds4.c<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">wc -l ds4.c</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">line count of ds4.c</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result> 23456 ds4.c
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] count lines in ds4.c

[Tool] 23456 ds4.c

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>count lines in ds4.c<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">wc -l ds4.c</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">line count of ds4.c</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result> 23456 ds4.c
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] find TODO comments

[Tool] ds4_server.c:842:    // TODO: revisit when streaming usage is finalized

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>find TODO comments<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="grep">
<｜DSML｜parameter name="pattern" string="true">TODO</｜DSML｜parameter>
<｜DSML｜parameter name="path" string="true">.</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>ds4_server.c:842:    // TODO: revisit when streaming usage is finalized
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] find TODO comments

[Tool] ds4_server.c:842:    // TODO: revisit when streaming usage is finalized

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>find TODO comments<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="grep">
<｜DSML｜parameter name="pattern" string="true">TODO</｜DSML｜parameter>
<｜DSML｜parameter name="path" string="true">.</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>ds4_server.c:842:    // TODO: revisit when streaming usage is finalized
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] list .metal kernels

[Tool]
metal/dsv4_hc.metal
metal/moe.metal
metal/sampling.metal

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>list .metal kernels<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="list_files">
<｜DSML｜parameter name="pattern" string="true">metal/*.metal</｜DSML｜parameter>
<｜DSML｜parameter name="max_depth" string="false">2</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>metal/dsv4_hc.metal
metal/moe.metal
metal/sampling.metal
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] list .metal kernels

[Tool]
metal/dsv4_hc.metal
metal/moe.metal
metal/sampling.metal

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>list .metal kernels<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="list_files">
<｜DSML｜parameter name="pattern" string="true">metal/*.metal</｜DSML｜parameter>
<｜DSML｜parameter name="max_depth" string="false">2</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>metal/dsv4_hc.metal
metal/moe.metal
metal/sampling.metal
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] open Makefile

[Tool]
CC ?= cc
CFLAGS ?= -O3 -ffast-math ...

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>open Makefile<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="read_file">
<｜DSML｜parameter name="path" string="true">Makefile</｜DSML｜parameter>
<｜DSML｜parameter name="start" string="false">1</｜DSML｜parameter>
<｜DSML｜parameter name="lines" string="false">40</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>CC ?= cc
CFLAGS ?= -O3 -ffast-math ...
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] open Makefile

[Tool]
CC ?= cc
CFLAGS ?= -O3 -ffast-math ...

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>open Makefile<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="read_file">
<｜DSML｜parameter name="path" string="true">Makefile</｜DSML｜parameter>
<｜DSML｜parameter name="start" string="false">1</｜DSML｜parameter>
<｜DSML｜parameter name="lines" string="false">40</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>CC ?= cc
CFLAGS ?= -O3 -ffast-math ...
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] fix typo in README

[Tool] edit applied: 1 occurrence replaced

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>fix typo in README<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="edit">
<｜DSML｜parameter name="path" string="true">README.md</｜DSML｜parameter>
<｜DSML｜parameter name="old_string" string="true">DrawfStar</｜DSML｜parameter>
<｜DSML｜parameter name="new_string" string="true">DwarfStar</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>edit applied: 1 occurrence replaced
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] fix typo in README

[Tool] edit applied: 1 occurrence replaced

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>fix typo in README<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="edit">
<｜DSML｜parameter name="path" string="true">README.md</｜DSML｜parameter>
<｜DSML｜parameter name="old_string" string="true">DrawfStar</｜DSML｜parameter>
<｜DSML｜parameter name="new_string" string="true">DwarfStar</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>edit applied: 1 occurrence replaced
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] note that streaming is on

[Tool] todo updated: 2 open, 0 done

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>note that streaming is on<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="todo">
<｜DSML｜parameter name="items" string="false">["validate streaming","add backpressure test"]</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>todo updated: 2 open, 0 done
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] note that streaming is on

[Tool] todo updated: 2 open, 0 done

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>note that streaming is on<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="todo">
<｜DSML｜parameter name="items" string="false">["validate streaming","add backpressure test"]</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>todo updated: 2 open, 0 done
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] record decision about quant width

[Tool] noted

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>record decision about quant width<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="think">
<｜DSML｜parameter name="note" string="true">stay at IQ2_XXS for routed gate/up; bump scratch buffers to fp16</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>noted
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] record decision about quant width

[Tool] noted

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>record decision about quant width<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="think">
<｜DSML｜parameter name="note" string="true">stay at IQ2_XXS for routed gate/up; bump scratch buffers to fp16</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>noted
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] fetch model card

[Tool] {"name":"DeepSeek-V4-Flash","params":"284B","active":"21B","context":1048576,"license":"DeepSeek"}

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>fetch model card<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="web_fetch">
<｜DSML｜parameter name="url" string="true">http://127.0.0.1:8000/v1/models/default</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>{"name":"DeepSeek-V4-Flash","params":"284B","active":"21B","context":1048576,"license":"DeepSeek"}
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System]
You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

[User] fetch model card

[Tool] {"name":"DeepSeek-V4-Flash","params":"284B","active":"21B","context":1048576,"license":"DeepSeek"}

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>You are an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.

IMPORTANT: Refuse to write malicious code.
IMPORTANT: Before you begin work, think about what the code you are editing is supposed to do based on the filenames and directory structure.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>fetch model card<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="web_fetch">
<｜DSML｜parameter name="url" string="true">http://127.0.0.1:8000/v1/models/default</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>{"name":"DeepSeek-V4-Flash","params":"284B","active":"21B","context":1048576,"license":"DeepSeek"}
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System] Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

[User] show me the current branch

[Tool] main

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>show me the current branch<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">git rev-parse --abbrev-ref HEAD</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">current git branch</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>main
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System] Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

[User] show me the current branch

[Tool] main

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>show me the current branch<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">git rev-parse --abbrev-ref HEAD</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">current git branch</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>main
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System] Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

[User] count lines in ds4.c

[Tool] 23456 ds4.c

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>count lines in ds4.c<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">wc -l ds4.c</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">line count of ds4.c</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result> 23456 ds4.c
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System] Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

[User] count lines in ds4.c

[Tool] 23456 ds4.c

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>count lines in ds4.c<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="bash">
<｜DSML｜parameter name="command" string="true">wc -l ds4.c</｜DSML｜parameter>
<｜DSML｜parameter name="description" string="true">line count of ds4.c</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result> 23456 ds4.c
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System] Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

[User] find TODO comments

[Tool] ds4_server.c:842:    // TODO: revisit when streaming usage is finalized

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>find TODO comments<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="grep">
<｜DSML｜parameter name="pattern" string="true">TODO</｜DSML｜parameter>
<｜DSML｜parameter name="path" string="true">.</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>ds4_server.c:842:    // TODO: revisit when streaming usage is finalized
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>


[System] Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

[User] find TODO comments

[Tool] ds4_server.c:842:    // TODO: revisit when streaming usage is finalized

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>find TODO comments<｜Assistant｜><think>Direct call; the answer is in the tool output.</think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="grep">
<｜DSML｜parameter name="pattern" string="true">TODO</｜DSML｜parameter>
<｜DSML｜parameter name="path" string="true">.</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>ds4_server.c:842:    // TODO: revisit when streaming usage is finalized
</tool_result><｜Assistant｜><think></think>Done. Output above.<｜end▁of▁sentence｜>


[System] Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

[User] list .metal kernels

[Tool]
metal/dsv4_hc.metal
metal/moe.metal
metal/sampling.metal

[Assistant] Done. Output above.

<｜begin▁of▁sentence｜>Sei un assistente di programmazione che opera in un repository locale. Usa gli strumenti per ispezionare i file e applicare modifiche. Rispondi in italiano. Sii conciso.

## Tools

You have access to a set of tools to help answer the user question. You can invoke tools by writing a "<｜DSML｜tool_calls>" block like the following:

<｜DSML｜tool_calls>
<｜DSML｜invoke name="$TOOL_NAME">
<｜DSML｜parameter name="$PARAMETER_NAME" string="true|false">$PARAMETER_VALUE</｜DSML｜parameter>
...
</｜DSML｜invoke>
<｜DSML｜invoke name="$TOOL_NAME2">
...
</｜DSML｜invoke>
</｜DSML｜tool_calls>

String parameters should be specified as raw text and set `string="true"`. Preserve characters such as `>`, `&`, and `&&` exactly; never replace normal string characters with XML or HTML entity escapes. Only if a string value itself contains the exact closing parameter tag `</｜DSML｜parameter>`, write that tag as `</｜DSML｜parameter>` inside the value. For all other types (numbers, booleans, arrays, objects), pass the value in JSON format and set `string="false"`.

If thinking_mode is enabled (triggered by <think>), you MUST output your complete reasoning inside <think>...</think> BEFORE any tool calls or final response.

Otherwise, output directly after </think> with tool calls or final response.

### Available Tool Schemas

{"name":"bash","description":"Run a shell command in the workspace.","parameters":{"type":"object","properties":{"command":{"type":"string","description":"The command line to execute."},"description":{"type":"string","description":"Short description of intent."},"timeout":{"type":"integer","description":"Timeout in seconds.","default":30}},"required":["command"]}}

You MUST strictly follow the above defined tool name and parameter schemas to invoke tool calls. Use the exact parameter names from the schemas.<｜User｜>list .metal kernels<｜Assistant｜></think>

<｜DSML｜tool_calls>
<｜DSML｜invoke name="list_files">
<｜DSML｜parameter name="pattern" string="true">metal/*.metal</｜DSML｜parameter>
<｜DSML｜parameter name="max_depth" string="false">2</｜DSML｜parameter>
</｜DSML｜invoke>
</｜DSML｜tool_calls><｜end▁of▁sentence｜><｜User｜><tool_result>metal/dsv4_hc.metal
metal/moe.metal
metal/sampling.metal
</tool_result><｜Assistant｜></think>Done. Output above.<｜end▁of▁sentence｜>