in client.go [255:273]
func (c *Connection) sendMessage(msg *acpb.MessageBody) error {
req := &acpb.StreamAgentMessagesRequest{
MessageId: uuid.New().String(),
Type: &acpb.StreamAgentMessagesRequest_MessageBody{MessageBody: msg},
}
channel := make(chan *status.Status)
c.responseMx.Lock()
c.responseSubs[req.GetMessageId()] = channel
c.responseMx.Unlock()
select {
case <-c.closed:
return fmt.Errorf("connection closed with err: %w", c.getCloseErr())
case c.streamReady <- struct{}{}: // Only sends if the stream is ready to send.
}
return c.sendWithResp(req, channel)
}