Merge pull request #1479 from securityguy/fix/claude-cli-error-surfacing
fix(claude_cli): surface stdout in error when CLI exits non-zero
This commit is contained in:
commit
74f2a1513e
1 changed files with 10 additions and 2 deletions
|
|
@ -50,10 +50,18 @@ func (p *ClaudeCliProvider) Chat(
|
||||||
cmd.Stderr = &stderr
|
cmd.Stderr = &stderr
|
||||||
|
|
||||||
if err := cmd.Run(); err != nil {
|
if err := cmd.Run(); err != nil {
|
||||||
if stderrStr := stderr.String(); stderrStr != "" {
|
stderrStr := strings.TrimSpace(stderr.String())
|
||||||
|
stdoutStr := strings.TrimSpace(stdout.String())
|
||||||
|
switch {
|
||||||
|
case stderrStr != "" && stdoutStr != "":
|
||||||
|
return nil, fmt.Errorf("claude cli error: %w\nstderr: %s\nstdout: %s", err, stderrStr, stdoutStr)
|
||||||
|
case stderrStr != "":
|
||||||
return nil, fmt.Errorf("claude cli error: %s", stderrStr)
|
return nil, fmt.Errorf("claude cli error: %s", stderrStr)
|
||||||
|
case stdoutStr != "":
|
||||||
|
return nil, fmt.Errorf("claude cli error: %w\noutput: %s", err, stdoutStr)
|
||||||
|
default:
|
||||||
|
return nil, fmt.Errorf("claude cli error: %w", err)
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("claude cli error: %w", err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return p.parseClaudeCliResponse(stdout.String())
|
return p.parseClaudeCliResponse(stdout.String())
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue