This repository contains a set of pluggable tools that the assistant can use to operate on itself and on the surrounding GitHub repository. Each tool follows a simple interface defined by BaseTool and exposes a set of callable functions that higher-level orchestration can invoke.
## Architecture
- BaseTool: All tools inherit from tools/base_tool.py and implement:
- get_functions(): returns a list of function specs (name, description, JSON schema for parameters)
- execute(function_name, **kwargs): dispatches calls to concrete implementations
- clear(): resets transient state
- Discovery: Tools are simple Python modules under tools/. They can be imported and registered by the host application. Each tool is self-contained and may use environment variables for configuration.
## Available tools
- GitHubTool (tools/github_tool.py)
- Rich integration with the GitHub REST API for repository tasks.
- Examples of capabilities: read_file, list_files, search_code, create_branch, commit_file, commit_file_patch, create_pull_request, PR review helpers, issues and project boards, branch utilities, and more.
- GitHubCIHelper (tools/github_ci_tool.py)
- Focused helpers for GitHub Actions CI: discover PR workflow runs, fetch job logs, and parse unittest failure blocks from logs.
- LogTool (tools/log_tool.py)
- Reads the local logs/output.log file. Supports tailing by line count or filtering to the last 24 hours using a timestamp-aware parser.