OpenAI's AsyncStream uses close() while async generators (e.g. from OpenPipe) use aclose(). Replace direct async-with on the stream with a helper that handles both protocols.