constgrepDescription="Search files for lines matching a regular expression (Go RE2 syntax), as ripgrep does: a directory is searched recursively, skipping .git, what .gitignore files exclude, and binary files. "+
"Each match comes back as path:line:text, at most 64 KiB in all."
constlistDescription="List one directory's entries, not recursively, one name per line sorted by name, with / after each directory (symlinks to directories included). "+
"Nothing is left out: dotfiles, binary and gitignored files all show. At most 64 KiB in all."
Description:"Read a file on the Mac byre runs on; byre reads it itself, outside any sandbox your own tools have. Text comes back with line numbers, starting at line 1 (or offset), at most limit lines. "+
"A PNG, JPEG, GIF or WebP image comes back as the image. Other binary files fail.",
InputSchema:json.RawMessage(`{
"type": "object",
"properties": {
"path": {"type": "string", "description": "The file, relative to your worktree, absolute, or starting with ~/."},
"offset": {"type": "integer", "description": "The line number to start from (default 1)."},
"limit": {"type": "integer", "description": "The most lines to return (default 2000)."}
Description:"Write a file on the Mac byre runs on, replacing its contents, creating it and its parent directories when missing; byre writes it itself, outside any sandbox your own tools have.",
InputSchema:json.RawMessage(`{
"type": "object",
"properties": {
"path": {"type": "string", "description": "The file, relative to your worktree, absolute, or starting with ~/."},
Description:"Replace old_string with new_string in a text file on the Mac byre runs on; byre edits it itself, outside any sandbox your own tools have. "+
"old_string must match the file exactly, whitespace included, and appear exactly once; otherwise the file is left as it was.",
InputSchema:json.RawMessage(`{
"type": "object",
"properties": {
"path": {"type": "string", "description": "The file, relative to your worktree, absolute, or starting with ~/."},
Description:grepDescription+" It searches the Mac byre runs on, outside any sandbox your own tools have.",
InputSchema:json.RawMessage(`{
"type": "object",
"properties": {
"pattern": {"type": "string"},
"path": {"type": "string", "description": "The file or directory to search, relative to your worktree, absolute, or starting with ~/ (default your worktree)."},
"glob": {"type": "string", "description": "Search only files whose names match this glob, e.g. *.go."},
"ignore_case": {"type": "boolean"},
"files_only": {"type": "boolean", "description": "List the matching files instead of their lines."}