diff --git a/cmd/openrouter/main.go b/cmd/openrouter/main.go index 759ad27925092d164af69c57bb926d76537de157..792b23f51497bd5133dc47d4ba9155ab03521276 100644 --- a/cmd/openrouter/main.go +++ b/cmd/openrouter/main.go @@ -136,17 +136,28 @@ func fetchOpenRouterModels() (*ModelsResponse, error) { nil, ) req.Header.Set("User-Agent", "Crush-Client/1.0") + resp, err := client.Do(req) if err != nil { return nil, err //nolint:wrapcheck } defer resp.Body.Close() //nolint:errcheck - if resp.StatusCode != 200 { - body, _ := io.ReadAll(resp.Body) + + body, err := io.ReadAll(resp.Body) + if err != nil { + return nil, fmt.Errorf("unable to read models response body: %w", err) + } + + if resp.StatusCode != http.StatusOK { return nil, fmt.Errorf("status %d: %s", resp.StatusCode, body) } + + // for debugging + _ = os.MkdirAll("tmp", 0o700) + _ = os.WriteFile("tmp/openrouter-response.json", body, 0o600) + var mr ModelsResponse - if err := json.NewDecoder(resp.Body).Decode(&mr); err != nil { + if err := json.Unmarshal(body, &mr); err != nil { return nil, err //nolint:wrapcheck } return &mr, nil