Message message = parsed.asMessage();
switch (message) {
case AssistantMessage assistant -> {
for (ContentBlock block : assistant.content()) {
switch (block) {
case TextBlock text ->
System.out.println(text.text());
case ToolUseBlock tool ->
System.out.println("Tool: " + tool.name());
case ToolResultBlock result ->
System.out.println("Result: " + result.toolUseId());
case ThinkingBlock thinking ->
System.out.println("Thinking: " + thinking.thinking());
default -> { }
}
}
}
case ResultMessage result -> {
System.out.printf("Cost: $%.6f%n", result.totalCostUsd());
System.out.printf("Duration: %d ms%n", result.durationMs());
}
case UserMessage user ->
System.out.println("User: " + user.content());
case SystemMessage system ->
System.out.println("System: " + system.subtype());
default -> { }
}