package piagent import ( "encoding/json" "strings" ) func trimErrorBody(body []byte) string { value := strings.TrimSpace(string(body)) if value == "" { return "empty error body" } if len(value) > 1200 { return value[:1200] } return value } func decodeChatContent(raw json.RawMessage) string { var text string if err := json.Unmarshal(raw, &text); err == nil { return text } var parts []struct { Type string `json:"type"` Text string `json:"text"` } if err := json.Unmarshal(raw, &parts); err == nil { var builder strings.Builder for _, part := range parts { if strings.TrimSpace(part.Text) == "" { continue } if builder.Len() > 0 { builder.WriteString("\n") } builder.WriteString(part.Text) } return builder.String() } return string(raw) }