Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions lib/claude_code/message/result_message.ex
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ defmodule ClaudeCode.Message.ResultMessage do
:duration_ms,
:duration_api_ms,
:num_turns,
:result,
:session_id,
:total_cost_usd,
:usage
Expand Down Expand Up @@ -92,7 +91,7 @@ defmodule ClaudeCode.Message.ResultMessage do
duration_ms: float(),
duration_api_ms: float(),
num_turns: non_neg_integer(),
result: String.t(),
result: String.t() | nil,
session_id: Types.session_id(),
total_cost_usd: float(),
usage: Types.usage(),
Expand Down Expand Up @@ -122,7 +121,6 @@ defmodule ClaudeCode.Message.ResultMessage do
"duration_ms",
"duration_api_ms",
"num_turns",
"result",
"session_id",
"total_cost_usd",
"usage"
Expand Down Expand Up @@ -233,6 +231,11 @@ defmodule ClaudeCode.Message.ResultMessage do
defp parse_permission_denials(_), do: nil
end

defimpl String.Chars, for: ClaudeCode.Message.Result do
defimpl String.Chars, for: ClaudeCode.Message.ResultMessage do
def to_string(%{result: nil, errors: errors}) when is_list(errors) do
"Error: " <> Enum.join(errors, ", ")
end

def to_string(%{result: nil}), do: ""
def to_string(%{result: result}), do: result
end