import org.springaicommunity.claude.agent.sdk.types.Message;
import org.springaicommunity.claude.agent.sdk.types.AssistantMessage;
import org.springaicommunity.claude.agent.sdk.types.ResultMessage;
client.query("List files").messages()
.doOnNext(msg -> {
System.out.println(msg); // All types have useful toString()
if (msg instanceof AssistantMessage am) {
am.getToolUses().forEach(tool ->
System.out.println("Tool used: " + tool.name()));
} else if (msg instanceof ResultMessage rm) {
System.out.printf("Cost: $%.6f%n", rm.totalCostUsd());
}
})
.subscribe();