<available-tools>
<tool name="patch-text-file">
<schema>
<patch-text-file id="int" path="absolute-path-to-file"
explanation="short-description-of-aiming">
<![CDATA[YOUR-PATCH]]></patch-text-file>
</schema>
<description>
Edit text files. `patch-text-file` allows you to execute a diff/patch against a text file, but the format of the diff specification is unique to this task, so pay careful attention to these instructions.
Where [YOUR_PATCH] is the actual content of your patch, specified in the following V4A diff format.
**Do not use line numbers in this diff format.**
</description>
<example>
<patch-text-file id="1" path="/Users/someone/pygorithm/searching/binary_search.py"><!CDATA[
@@class BaseClass
@@ def search():
- pass
+ raise NotImplementedError()
@@class Subclass
@@ def search():
- pass
+ raise NotImplementedError()
]]></patch-text-file>
</example>
</tool>
<tool name="manage-todo-list">
<schema>
<manage-todo-list id="int" operation="enum:write|read">
<todo id="int" status="enum:not-started|in-progress|completed" title="concise-title">
<description>string</description>
</todo>
</manage-todo-list>
</schema>
<description><![CDATA[Manage a structured todo list to plan and track tasks.
- `operation="write"`: Replaces the entire list. You must provide all items.
- `operation="read"`: Retrieves the current list.
- Critical Workflow: Plan -> Mark ONE as 'in-progress' -> Complete work -> Mark as 'completed' IMMEDIATELY -> Repeat.
]]></description>
<example>
<manage-todo-list id="2" operation="write">
<todo id="1" status="completed" title="Set up project structure">
<description>Create initial folders: /src, /tests, /docs.</description>
</todo>
<todo id="2" status="in-progress" title="Implement user authentication">
<description>Create login endpoint in /src/auth.js. Needs user model.</description>
</todo>
<todo id="3" status="not-started" title="Write unit tests for auth">
<description>Use jest to test the login endpoint with valid and invalid credentials.</description>
</todo>
</manage-todo-list>
</example>
</tool>
<tool name="shell">
<schema>
<shell id="int" explanation="short-description">single-line-bash-command</shell>
</schema>
<description><![CDATA[
Executes a single, synchronous shell command in the workspace root. This is a powerful and versatile tool that can be used for a wide range of tasks.
**Capabilities:**
- **File System:** List files (`ls -l`), find files (`find . -name "*.py"`), check disk usage (`du -sh .`).
- **Content Search:** Search for text in files (`grep -r "my-function" src/`).
- **Web Requests:** Fetch web content (`curl -sL https://example.com`).
- **Piping & Redirection:** Chain commands together (`ps aux | grep python`) or save output to a file (`ls > file_list.txt`).
- **Partial Views:** Use `head` or `tail` to view only the beginning or end of a large output (e.g., `cat large_log.txt | tail -n 20`).
**CRITICAL USAGE GUIDELINES:**
1. **Be Specific:** Avoid overly broad commands that produce huge amounts of output (e.g., `ls -R /`). Use filters like `grep`, `head`, `tail` to limit results.
2. **Synchronous Only:** This tool waits for the command to complete. For long-running or background processes (like starting a server), use the `run_in_terminal` tool instead.
3. **Safety:** Be extremely careful with destructive commands like `rm`. The `explanation` attribute is mandatory for user visibility and safety.
]]></description>
<example>
<shell id="3" explanation="Find the first 10 Python files in the 'src' directory."><![CDATA[
find src/ -name "*.py" | head -n 10
]]></shell>
<shell id="4" explanation="Search for 'API_KEY' within all .env files in the workspace."><![CDATA[
grep "API_KEY" **/.env
]]></shell>
<shell id="5" explanation="Fetch the HTTP headers from example.com."><![CDATA[
curl -sI https://example.com
]]></shell>
</example>
</tool>
</available-tools>