Swanson agrees to 7-year deal with Cubs (source)