def get_tools_definition(): return [ { "type": "function", "function": { "name": "kill_process", "description": "Terminate a background process by its PID. Use this to stop processes started with run_command that exceeded their timeout.", "parameters": { "type": "object", "properties": { "pid": { "type": "integer", "description": "The process ID returned by run_command when status is 'running'." } }, "required": ["pid"] } } }, { "type": "function", "function": { "name": "tail_process", "description": "Monitor and retrieve output from a background process by its PID. Use this to check on processes started with run_command that exceeded their timeout.", "parameters": { "type": "object", "properties": { "pid": { "type": "integer", "description": "The process ID returned by run_command when status is 'running'." }, "timeout": { "type": "integer", "description": "Maximum seconds to wait for process completion. Returns partial output if still running.", "default": 30 } }, "required": ["pid"] } } }, { "type": "function", "function": { "name": "http_fetch", "description": "Fetch content from an HTTP URL", "parameters": { "type": "object", "properties": { "url": {"type": "string", "description": "The URL to fetch"}, "headers": {"type": "object", "description": "Optional HTTP headers"} }, "required": ["url"] } } }, { "type": "function", "function": { "name": "run_command", "description": "Execute a shell command and capture output. Returns immediately after timeout with PID if still running. Use tail_process to monitor or kill_process to terminate long-running commands.", "parameters": { "type": "object", "properties": { "command": {"type": "string", "description": "The shell command to execute"}, "timeout": {"type": "integer", "description": "Maximum seconds to wait for completion", "default": 30} }, "required": ["command"] } } }, { "type": "function", "function": { "name": "start_interactive_session", "description": "Execute an interactive terminal command that requires user input or displays UI. The command runs in a dedicated session and returns a session name.", "parameters": { "type": "object", "properties": { "command": {"type": "string", "description": "The interactive command to execute (e.g., vim, nano, top)"} }, "required": ["command"] } } }, { "type": "function", "function": { "name": "send_input_to_session", "description": "Send input to an interactive session.", "parameters": { "type": "object", "properties": { "session_name": {"type": "string", "description": "The name of the session"}, "input_data": {"type": "string", "description": "The input to send to the session"} }, "required": ["session_name", "input_data"] } } }, { "type": "function", "function": { "name": "read_session_output", "description": "Read output from an interactive session.", "parameters": { "type": "object", "properties": { "session_name": {"type": "string", "description": "The name of the session"} }, "required": ["session_name"] } } }, { "type": "function", "function": { "name": "close_interactive_session", "description": "Close an interactive session.", "parameters": { "type": "object", "properties": { "session_name": {"type": "string", "description": "The name of the session"} }, "required": ["session_name"] } } }, { "type": "function", "function": { "name": "read_file", "description": "Read contents of a file", "parameters": { "type": "object", "properties": { "filepath": {"type": "string", "description": "Path to the file"} }, "required": ["filepath"] } } }, { "type": "function", "function": { "name": "write_file", "description": "Write content to a file", "parameters": { "type": "object", "properties": { "filepath": {"type": "string", "description": "Path to the file"}, "content": {"type": "string", "description": "Content to write"} }, "required": ["filepath", "content"] } } }, { "type": "function", "function": { "name": "list_directory", "description": "List directory contents", "parameters": { "type": "object", "properties": { "path": {"type": "string", "description": "Directory path", "default": "."}, "recursive": {"type": "boolean", "description": "List recursively", "default": False} } } } }, { "type": "function", "function": { "name": "mkdir", "description": "Create a new directory", "parameters": { "type": "object", "properties": { "path": {"type": "string", "description": "Path of the directory to create"} }, "required": ["path"] } } }, { "type": "function", "function": { "name": "chdir", "description": "Change the current working directory", "parameters": { "type": "object", "properties": { "path": {"type": "string", "description": "Path to change to"} }, "required": ["path"] } } }, { "type": "function", "function": { "name": "getpwd", "description": "Get the current working directory", "parameters": {"type": "object", "properties": {}} } }, { "type": "function", "function": { "name": "db_set", "description": "Set a key-value pair in the database", "parameters": { "type": "object", "properties": { "key": {"type": "string", "description": "The key"}, "value": {"type": "string", "description": "The value"} }, "required": ["key", "value"] } } }, { "type": "function", "function": { "name": "db_get", "description": "Get a value from the database", "parameters": { "type": "object", "properties": { "key": {"type": "string", "description": "The key"} }, "required": ["key"] } } }, { "type": "function", "function": { "name": "db_query", "description": "Execute a database query", "parameters": { "type": "object", "properties": { "query": {"type": "string", "description": "SQL query"} }, "required": ["query"] } } }, { "type": "function", "function": { "name": "web_search", "description": "Perform a web search", "parameters": { "type": "object", "properties": { "query": {"type": "string", "description": "Search query"} }, "required": ["query"] } } }, { "type": "function", "function": { "name": "web_search_news", "description": "Perform a web search for news", "parameters": { "type": "object", "properties": { "query": {"type": "string", "description": "Search query for news"} }, "required": ["query"] } } }, { "type": "function", "function": { "name": "python_exec", "description": "Execute Python code", "parameters": { "type": "object", "properties": { "code": {"type": "string", "description": "Python code to execute"} }, "required": ["code"] } } }, { "type": "function", "function": { "name": "index_source_directory", "description": "Index directory recursively and read all source files.", "parameters": { "type": "object", "properties": { "path": {"type": "string", "description": "Path to index"} }, "required": ["path"] } } }, { "type": "function", "function": { "name": "search_replace", "description": "Search and replace text in a file", "parameters": { "type": "object", "properties": { "filepath": {"type": "string", "description": "Path to the file"}, "old_string": {"type": "string", "description": "String to replace"}, "new_string": {"type": "string", "description": "Replacement string"} }, "required": ["filepath", "old_string", "new_string"] } } }, { "type": "function", "function": { "name": "apply_patch", "description": "Apply a patch to a file, especially for source code", "parameters": { "type": "object", "properties": { "filepath": {"type": "string", "description": "Path to the file to patch"}, "patch_content": {"type": "string", "description": "The patch content as a string"} }, "required": ["filepath", "patch_content"] } } }, { "type": "function", "function": { "name": "create_diff", "description": "Create a unified diff between two files", "parameters": { "type": "object", "properties": { "file1": {"type": "string", "description": "Path to the first file"}, "file2": {"type": "string", "description": "Path to the second file"}, "fromfile": {"type": "string", "description": "Label for the first file", "default": "file1"}, "tofile": {"type": "string", "description": "Label for the second file", "default": "file2"} }, "required": ["file1", "file2"] } } }, { "type": "function", "function": { "name": "open_editor", "description": "Open the RPEditor for a file", "parameters": { "type": "object", "properties": { "filepath": {"type": "string", "description": "Path to the file"} }, "required": ["filepath"] } } }, { "type": "function", "function": { "name": "close_editor", "description": "Close the RPEditor. Always close files when finished editing.", "parameters": { "type": "object", "properties": { "filepath": {"type": "string", "description": "Path to the file"} }, "required": ["filepath"] } } }, { "type": "function", "function": { "name": "editor_insert_text", "description": "Insert text at cursor position in the editor", "parameters": { "type": "object", "properties": { "filepath": {"type": "string", "description": "Path to the file"}, "text": {"type": "string", "description": "Text to insert"}, "line": {"type": "integer", "description": "Line number (optional)"}, "col": {"type": "integer", "description": "Column number (optional)"} }, "required": ["filepath", "text"] } } }, { "type": "function", "function": { "name": "editor_replace_text", "description": "Replace text in a range", "parameters": { "type": "object", "properties": { "filepath": {"type": "string", "description": "Path to the file"}, "start_line": {"type": "integer", "description": "Start line"}, "start_col": {"type": "integer", "description": "Start column"}, "end_line": {"type": "integer", "description": "End line"}, "end_col": {"type": "integer", "description": "End column"}, "new_text": {"type": "string", "description": "New text"} }, "required": ["filepath", "start_line", "start_col", "end_line", "end_col", "new_text"] } } }, { "type": "function", "function": { "name": "editor_search", "description": "Search for a pattern in the file", "parameters": { "type": "object", "properties": { "filepath": {"type": "string", "description": "Path to the file"}, "pattern": {"type": "string", "description": "Regex pattern"}, "start_line": {"type": "integer", "description": "Start line", "default": 0} }, "required": ["filepath", "pattern"] } } }, { "type": "function", "function": { "name": "display_file_diff", "description": "Display a visual colored diff between two files with syntax highlighting and statistics", "parameters": { "type": "object", "properties": { "filepath1": {"type": "string", "description": "Path to the original file"}, "filepath2": {"type": "string", "description": "Path to the modified file"}, "format_type": {"type": "string", "description": "Display format: 'unified' or 'side-by-side'", "default": "unified"} }, "required": ["filepath1", "filepath2"] } } }, { "type": "function", "function": { "name": "display_edit_summary", "description": "Display a summary of all edit operations performed during the session", "parameters": { "type": "object", "properties": {} } } }, { "type": "function", "function": { "name": "display_edit_timeline", "description": "Display a timeline of all edit operations with details", "parameters": { "type": "object", "properties": { "show_content": {"type": "boolean", "description": "Show content previews", "default": False} } } } }, { "type": "function", "function": { "name": "clear_edit_tracker", "description": "Clear the edit tracker to start fresh", "parameters": { "type": "object", "properties": {} } } } ]