Classes
ListFilesInput
Input for list_files: a glob pattern (defaults to the whole tree).
ReadFileInput
Input for read_file: a workspace path and optional 1-indexed line range.
line_range is a list[int] ([start, end]), not a tuple — a tuple renders to
JSON Schema as prefixItems without an items key, which Gemini’s request validator
rejects (ADR-0019). A plain list emits a provider-agnostic {"type": "array", "items": {"type": "integer"}}; the exactly-two / ordering contract is enforced by the validator.