error.go

 1package google
 2
 3import (
 4	"cmp"
 5	"errors"
 6
 7	"charm.land/fantasy"
 8	"google.golang.org/genai"
 9)
10
11func toProviderErr(err error) error {
12	var apiErr genai.APIError
13	if !errors.As(err, &apiErr) {
14		return err
15	}
16	return &fantasy.ProviderError{
17		Message:      apiErr.Message,
18		Title:        cmp.Or(fantasy.ErrorTitleForStatusCode(apiErr.Code), "provider request failed"),
19		Cause:        err,
20		StatusCode:   apiErr.Code,
21		ResponseBody: []byte(apiErr.Message),
22	}
23}