That's just one part of it. I want the LLM to see type checking errors, failing test outputs, etc.

Errors shouldn’t be on stdout ;)

“Errors” printed by your linter aren’t errors, they’re reports