import re, json TOOLS = [ {"type": "function", "function": { "name": "read_file", "description": "Read and return the contents of a file.", "parameters": {"type": "object", "properties": {"path": {"type": "string", "description": "File path to read."}}, "required": ["path"]}}}, {"type": "function", "function": { "name": "write_file", "description": "Create or overwrite a file with the given content.", "parameters": {"type": "object", "properties": {"path": {"type": "string"}, "content": {"type": "string"}}, "required": ["path", "content"]}}}, {"type": "function", "function": { "name": "edit_file", "description": "Replace an exact substring in a file with new text.", "parameters": {"type": "object", "properties": {"path": {"type": "string"}, "old_string": {"type": "string"}, "new_string": {"type": "string"}}, "required": ["path", "old_string", "new_string"]}}}, {"type": "function", "function": { "name": "list_dir", "description": "List the entries in a directory.", "parameters": {"type": "object", "properties": {"path": {"type": "string"}}, "required": ["path"]}}}, {"type": "function", "function": { "name": "run_bash", "description": "Run a shell command and return its output.", "parameters": {"type": "object", "properties": {"command": {"type": "string"}}, "required": ["command"]}}}, ] _TOOLCALL_RE = re.compile(r"\s*(\{.*?\})\s*", re.DOTALL) def parse_tool_calls(text): calls = [] for m in _TOOLCALL_RE.findall(text): try: calls.append(json.loads(m)) except json.JSONDecodeError: pass return calls