Retain injected client diagnostic evidence

This commit is contained in:
2026-10-13 17:05:40 +00:00
parent c5aed7a451
commit 2b723760d1
6 changed files with 233 additions and 12 deletions

View File

@@ -18,16 +18,17 @@ func (a publicLLMClientAdapter) Generate(ctx context.Context, req domain.Generat
if err == nil && resp == nil {
err = fmt.Errorf("%w: %w: llm client returned nil response", ErrLLMGenerate, ErrMalformedResponse)
}
response := toDomainGenerateResponse(resp)
if err != nil {
switch {
case errors.Is(err, ErrTransport):
return nil, classifiedClientError{cause: err, category: llm.ErrTransport}
return response, classifiedClientError{cause: err, category: llm.ErrTransport}
case errors.Is(err, ErrMalformedResponse):
return nil, classifiedClientError{cause: err, category: llm.ErrMalformedResponse}
return response, classifiedClientError{cause: err, category: llm.ErrMalformedResponse}
}
return nil, err
return response, err
}
return toDomainGenerateResponse(resp), nil
return response, nil
}
// classifiedClientError makes an explicit public category available internally