You can do it with a pretty straightfoward Geometry Nodes modifier :

On a new object, add a Geometry Nodes modifier.
Do the boolean difference of Object A with B, and then B with A.
You'll end up with two meshes separated by one or several edge lines at their intersection.

Then compute the distance between each vertex of one of the meshes and the vertices of the other one, and delete the vertices that are further than 0 (coincidental).
After that, Convert your mesh to a curve, and back to a mesh to apply a profile curve.
Plug the Group input to object A, B and the Curve Circle radius to be able to change it in real time and apply it to other situations !
You can even use a collection as an input for the boolean.
Note it does break in some situations. But in simple straightfoward cases it should work nicely.
