If I were using compose navigation and the dialog was a destination, then I would put the arg of the package id as a arg in the navigation route, and then the dialog and it's VM would retrieve that id, load it from the database or whatever, and edit it from there.
I think out of simplicity I would probably just go the first route where everything is just contained in a single screen and VM. You could argue that on a larger device you could put the editing logic side by side of the list of packages, so keeping the editing logic in the same vm as viewing the packages makes sense to me.