Quality gate rejects empty responses and error/max_tokens_exceeded stop reasons but does not reject whitespace-only responses, tool-use-only turns (no actual content), or error text with a non-error stop reason. Also stringly-typed stop reason comparison -- eidos has enums for everything else. Tighten the gate and use enum variants.
Quality gate rejects empty responses and error/max_tokens_exceeded stop reasons but does not reject whitespace-only responses, tool-use-only turns (no actual content), or error text with a non-error stop reason. Also stringly-typed stop reason comparison -- eidos has enums for everything else. Tighten the gate and use enum variants.