@@ -289,8 +289,18 @@ func (o *openaiClient) stream(ctx context.Context, messages []message.Message, t
289289
290290 err := openaiStream.Err()
291291 if err == nil || errors.Is(err, io.EOF) {
292+ if cfg.Options.Debug {
293+ jsonData, _ := json.Marshal(acc.ChatCompletion)
294+ logging.Debug("Response", "messages", string(jsonData))
295+ }
296+ resultFinishReason := acc.ChatCompletion.Choices[0].FinishReason
297+ if resultFinishReason == "" {
298+ // If the finish reason is empty, we assume it was a successful completion
299+ // INFO: this is happening for openrouter for some reason
300+ resultFinishReason = "stop"
301+ }
292302 // Stream completed successfully
293− finishReason := o.finishReason(string(acc.ChatCompletion.Choices[0].FinishReason))
303+ finishReason := o.finishReason(resultFinishReason)
294304 if len(acc.Choices[0].Message.ToolCalls) > 0 {
295305 toolCalls = append(toolCalls, o.toolCalls(acc.ChatCompletion)...)
296306 }