Extract tool result canonicalization, logical message equality, attachment ref stripping, and transcript merge logic from ChatViewModel.
Extract tool result canonicalization, logical message equality, attachment ref stripping, and transcript merge logic from ChatViewModel.