package agent import ( "encoding/json" "fmt" "strings" ) func parseDecision(raw string) (reactDecision, error) { raw = normalizeJSON(raw) start := strings.Index(raw, "{") end := strings.LastIndex(raw, "}") if start < 0 || end < start { return reactDecision{}, fmt.Errorf("no json object found") } raw = raw[start : end+1] var out reactDecision if err := json.Unmarshal([]byte(raw), &out); err != nil { return reactDecision{}, err } return out, nil } func normalizeJSON(raw string) string { raw = strings.TrimSpace(raw) raw = strings.TrimPrefix(raw, "```json") raw = strings.TrimPrefix(raw, "```") raw = strings.TrimSuffix(raw, "```") return strings.TrimSpace(raw) }