get_a_joke | Get a really funny joke! For testing :) |
configure_project | Configure a new project containing files. Each file in the project is split into 'chunks' - logical sections like functions,
classes, markdown sections, and import blocks.
After configuring, a common workflow is:
1. list_all_files_in_project to get an overview of the project (with
an initial limit on the depth of the search)
2. Find files by function/class definition:
find_files_by_chunk_content(... ["def my_funk"])
3. Find files by function/class usage:
find_files_by_chunk_content(... ["my_funk"])
4. Determine which chunks in the found files are relevant:
find_matching_chunks_in_file(...)
5. Get details about the chunks:
chunk_details(...)
Use ~ (tilde) literally if the user specifies it in paths. |
list_all_files_in_project | List all files in a project, returning a file tree. This is useful for getting an overview of the project, or specific
subdirectories of the project.
A project may have many files, so you are suggested
to start with a depth limit to get an overview, and then continue increasing
the depth limit with a filter to look at specific subdirectories. |
find_files_by_chunk_content | Step 1: Find files containing chunks with matching text. Returns file tree only showing which files contain matches.
You must use find_matching_chunks_in_file on each relevant file
to see the actual matches.
Example workflow:
1. Find files:
files = find_files_by_chunk_content(project, ["MyClass"])
2. For each file, find actual matches:
matches = find_matching_chunks_in_file(file, ["MyClass"])
3. Get content:
content = chunk_details(file, match_id) |
find_matching_chunks_in_file | Step 2: Find the actual matching chunks in a specific file. Required after find_files_by_chunk_content or list_all_files_in_project to see
matches, as those tools only show files, not their contents.
This can be used for things like:
- Finding all chunks in a file that make reference to a specific function
(e.g. find_matching_chunks_in_file(..., ["my_funk"])
- Finding a chunk where a specific function is defined
(e.g. find_matching_chunks_in_file(..., ["def my_funk"])
Some chunks are split into multiple parts, because they are too large. This
will look like 'chunkx_part1', 'chunkx_part2', ... |
chunk_details | Get full content of a specific chunk. Returns chunk content as string.
Common patterns:
1. Final step after find_matching_chunks_in_file finds relevant chunks
2. Examining implementations after finding definitions/uses |
list_most_recently_checked_out_branches | List the n most recently checked out branches in the project |
diff_with_ref | Return a summary of the diff between HEAD and the given ref. You probably want the ref to be the 'base' branch like develop or main, off which
PRs are made - and you can likely determine this by viewing the most recently
checked out branches. |